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 {
|
func shouldPerformUpgrade(sqlStore *SqlStore, currentSchemaVersion string, expectedSchemaVersion string) bool {
|
||||||
if sqlStore.GetCurrentSchemaVersion() == currentSchemaVersion {
|
storedSchemaVersion := sqlStore.GetCurrentSchemaVersion()
|
||||||
mlog.Warn("Attempting to upgrade the database schema version", mlog.String("current_version", currentSchemaVersion), mlog.String("new_version", expectedSchemaVersion))
|
|
||||||
|
|
||||||
|
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
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,16 @@ import (
|
|||||||
"github.com/mattermost/mattermost-server/v5/store"
|
"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) {
|
func TestStoreUpgrade(t *testing.T) {
|
||||||
StoreTest(t, func(t *testing.T, ss store.Store) {
|
StoreTest(t, func(t *testing.T, ss store.Store) {
|
||||||
sqlStore := ss.(*SqlStore)
|
sqlStore := ss.(*SqlStore)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user