Apply DB migrations regardless of version patch value (#17667)

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Claudio Costa
2021-05-23 11:35:03 +02:00
коммит произвёл GitHub
родитель abb62d5130
Коммит 0bc065d147
2 изменённых файлов: 26 добавлений и 2 удалений

Просмотреть файл

@@ -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)