Apply DB migrations regardless of version patch value (#17667)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
abb62d5130
Коммит
0bc065d147
@@ -223,9 +223,23 @@ func saveSchemaVersion(sqlStore *SqlStore, version string) {
|
||||
}
|
||||
|
||||
func shouldPerformUpgrade(sqlStore *SqlStore, currentSchemaVersion string, expectedSchemaVersion string) bool {
|
||||
if sqlStore.GetCurrentSchemaVersion() == currentSchemaVersion {
|
||||
mlog.Warn("Attempting to upgrade the database schema version", mlog.String("current_version", currentSchemaVersion), mlog.String("new_version", expectedSchemaVersion))
|
||||
storedSchemaVersion := sqlStore.GetCurrentSchemaVersion()
|
||||
|
||||
storedVersion, err := semver.Parse(storedSchemaVersion)
|
||||
if err != nil {
|
||||
mlog.Error("Error parsing stored schema version", mlog.Err(err))
|
||||
return false
|
||||
}
|
||||
|
||||
currentVersion, err := semver.Parse(currentSchemaVersion)
|
||||
if err != nil {
|
||||
mlog.Error("Error parsing current schema version", mlog.Err(err))
|
||||
return false
|
||||
}
|
||||
|
||||
if storedVersion.Major == currentVersion.Major && storedVersion.Minor == currentVersion.Minor {
|
||||
mlog.Warn("Attempting to upgrade the database schema version",
|
||||
mlog.String("stored_version", storedSchemaVersion), mlog.String("current_version", currentSchemaVersion), mlog.String("new_version", expectedSchemaVersion))
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,16 @@ import (
|
||||
"github.com/mattermost/mattermost-server/v5/store"
|
||||
)
|
||||
|
||||
func TestStoreUpgradeDotRelease(t *testing.T) {
|
||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||
sqlStore := ss.(*SqlStore)
|
||||
saveSchemaVersion(sqlStore, "5.33.1")
|
||||
err := upgradeDatabase(sqlStore, CurrentSchemaVersion)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, CurrentSchemaVersion, sqlStore.GetCurrentSchemaVersion())
|
||||
})
|
||||
}
|
||||
|
||||
func TestStoreUpgrade(t *testing.T) {
|
||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||
sqlStore := ss.(*SqlStore)
|
||||
|
||||
Ссылка в новой задаче
Block a user