Making private the sqlstore upgrade functions because nobody needs to call them from the outside (#13023)

Этот коммит содержится в:
Jesús Espino
2019-11-11 13:11:50 +01:00
коммит произвёл George Goldberg
родитель 53ee077cfd
Коммит 9557bcf329
3 изменённых файлов: 98 добавлений и 98 удалений

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

@@ -162,7 +162,7 @@ func NewSqlSupplier(settings model.SqlSettings, metrics einterfaces.MetricsInter
os.Exit(EXIT_CREATE_TABLE)
}
err = UpgradeDatabase(supplier, model.CurrentVersion)
err = upgradeDatabase(supplier, model.CurrentVersion)
if err != nil {
mlog.Critical("Failed to upgrade database.", mlog.Err(err))
time.Sleep(time.Second)

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

@@ -70,10 +70,10 @@ const (
EXIT_TEAM_INVITEID_MIGRATION_FAILED = 1006
)
// UpgradeDatabase attempts to migrate the schema to the latest supported version.
// upgradeDatabase attempts to migrate the schema to the latest supported version.
// The value of model.CurrentVersion is accepted as a parameter for unit testing, but it is not
// used to stop migrations at that version.
func UpgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error {
func upgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error {
currentModelVersion, err := semver.Parse(currentModelVersionString)
if err != nil {
return errors.Wrapf(err, "failed to parse current model version %s", currentModelVersionString)
@@ -122,47 +122,47 @@ func UpgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error
// Otherwise, apply any necessary migrations. Note that these methods currently invoke
// os.Exit instead of returning an error.
UpgradeDatabaseToVersion31(sqlStore)
UpgradeDatabaseToVersion32(sqlStore)
UpgradeDatabaseToVersion33(sqlStore)
UpgradeDatabaseToVersion34(sqlStore)
UpgradeDatabaseToVersion35(sqlStore)
UpgradeDatabaseToVersion36(sqlStore)
UpgradeDatabaseToVersion37(sqlStore)
UpgradeDatabaseToVersion38(sqlStore)
UpgradeDatabaseToVersion39(sqlStore)
UpgradeDatabaseToVersion310(sqlStore)
UpgradeDatabaseToVersion40(sqlStore)
UpgradeDatabaseToVersion41(sqlStore)
UpgradeDatabaseToVersion42(sqlStore)
UpgradeDatabaseToVersion43(sqlStore)
UpgradeDatabaseToVersion44(sqlStore)
UpgradeDatabaseToVersion45(sqlStore)
UpgradeDatabaseToVersion46(sqlStore)
UpgradeDatabaseToVersion47(sqlStore)
UpgradeDatabaseToVersion471(sqlStore)
UpgradeDatabaseToVersion472(sqlStore)
UpgradeDatabaseToVersion48(sqlStore)
UpgradeDatabaseToVersion481(sqlStore)
UpgradeDatabaseToVersion49(sqlStore)
UpgradeDatabaseToVersion410(sqlStore)
UpgradeDatabaseToVersion50(sqlStore)
UpgradeDatabaseToVersion51(sqlStore)
UpgradeDatabaseToVersion52(sqlStore)
UpgradeDatabaseToVersion53(sqlStore)
UpgradeDatabaseToVersion54(sqlStore)
UpgradeDatabaseToVersion55(sqlStore)
UpgradeDatabaseToVersion56(sqlStore)
UpgradeDatabaseToVersion57(sqlStore)
UpgradeDatabaseToVersion58(sqlStore)
UpgradeDatabaseToVersion59(sqlStore)
UpgradeDatabaseToVersion510(sqlStore)
UpgradeDatabaseToVersion511(sqlStore)
UpgradeDatabaseToVersion512(sqlStore)
UpgradeDatabaseToVersion513(sqlStore)
UpgradeDatabaseToVersion514(sqlStore)
UpgradeDatabaseToVersion515(sqlStore)
UpgradeDatabaseToVersion516(sqlStore)
upgradeDatabaseToVersion31(sqlStore)
upgradeDatabaseToVersion32(sqlStore)
upgradeDatabaseToVersion33(sqlStore)
upgradeDatabaseToVersion34(sqlStore)
upgradeDatabaseToVersion35(sqlStore)
upgradeDatabaseToVersion36(sqlStore)
upgradeDatabaseToVersion37(sqlStore)
upgradeDatabaseToVersion38(sqlStore)
upgradeDatabaseToVersion39(sqlStore)
upgradeDatabaseToVersion310(sqlStore)
upgradeDatabaseToVersion40(sqlStore)
upgradeDatabaseToVersion41(sqlStore)
upgradeDatabaseToVersion42(sqlStore)
upgradeDatabaseToVersion43(sqlStore)
upgradeDatabaseToVersion44(sqlStore)
upgradeDatabaseToVersion45(sqlStore)
upgradeDatabaseToVersion46(sqlStore)
upgradeDatabaseToVersion47(sqlStore)
upgradeDatabaseToVersion471(sqlStore)
upgradeDatabaseToVersion472(sqlStore)
upgradeDatabaseToVersion48(sqlStore)
upgradeDatabaseToVersion481(sqlStore)
upgradeDatabaseToVersion49(sqlStore)
upgradeDatabaseToVersion410(sqlStore)
upgradeDatabaseToVersion50(sqlStore)
upgradeDatabaseToVersion51(sqlStore)
upgradeDatabaseToVersion52(sqlStore)
upgradeDatabaseToVersion53(sqlStore)
upgradeDatabaseToVersion54(sqlStore)
upgradeDatabaseToVersion55(sqlStore)
upgradeDatabaseToVersion56(sqlStore)
upgradeDatabaseToVersion57(sqlStore)
upgradeDatabaseToVersion58(sqlStore)
upgradeDatabaseToVersion59(sqlStore)
upgradeDatabaseToVersion510(sqlStore)
upgradeDatabaseToVersion511(sqlStore)
upgradeDatabaseToVersion512(sqlStore)
upgradeDatabaseToVersion513(sqlStore)
upgradeDatabaseToVersion514(sqlStore)
upgradeDatabaseToVersion515(sqlStore)
upgradeDatabaseToVersion516(sqlStore)
return nil
}
@@ -187,14 +187,14 @@ func shouldPerformUpgrade(sqlStore SqlStore, currentSchemaVersion string, expect
return false
}
func UpgradeDatabaseToVersion31(sqlStore SqlStore) {
func upgradeDatabaseToVersion31(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_0_0, VERSION_3_1_0) {
sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "ContentType", "varchar(128)", "varchar(128)", "")
saveSchemaVersion(sqlStore, VERSION_3_1_0)
}
}
func UpgradeDatabaseToVersion32(sqlStore SqlStore) {
func upgradeDatabaseToVersion32(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_1_0, VERSION_3_2_0) {
sqlStore.CreateColumnIfNotExists("TeamMembers", "DeleteAt", "bigint(20)", "bigint", "0")
@@ -208,7 +208,7 @@ func themeMigrationFailed(err error) {
os.Exit(EXIT_THEME_MIGRATION)
}
func UpgradeDatabaseToVersion33(sqlStore SqlStore) {
func upgradeDatabaseToVersion33(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_2_0, VERSION_3_3_0) {
if sqlStore.DoesColumnExist("Users", "ThemeProps") {
params := map[string]interface{}{
@@ -291,7 +291,7 @@ func UpgradeDatabaseToVersion33(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion34(sqlStore SqlStore) {
func upgradeDatabaseToVersion34(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_3_0, VERSION_3_4_0) {
sqlStore.CreateColumnIfNotExists("Status", "Manual", "BOOLEAN", "BOOLEAN", "0")
sqlStore.CreateColumnIfNotExists("Status", "ActiveChannel", "varchar(26)", "varchar(26)", "")
@@ -300,7 +300,7 @@ func UpgradeDatabaseToVersion34(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion35(sqlStore SqlStore) {
func upgradeDatabaseToVersion35(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_4_0, VERSION_3_5_0) {
sqlStore.GetMaster().Exec("UPDATE Users SET Roles = 'system_user' WHERE Roles = ''")
sqlStore.GetMaster().Exec("UPDATE Users SET Roles = 'system_user system_admin' WHERE Roles = 'system_admin'")
@@ -323,7 +323,7 @@ func UpgradeDatabaseToVersion35(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion36(sqlStore SqlStore) {
func upgradeDatabaseToVersion36(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_5_0, VERSION_3_6_0) {
sqlStore.CreateColumnIfNotExists("Posts", "HasReactions", "tinyint", "boolean", "0")
@@ -340,7 +340,7 @@ func UpgradeDatabaseToVersion36(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion37(sqlStore SqlStore) {
func upgradeDatabaseToVersion37(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_6_0, VERSION_3_7_0) {
// Add EditAt column to Posts
sqlStore.CreateColumnIfNotExists("Posts", "EditAt", " bigint", " bigint", "0")
@@ -349,7 +349,7 @@ func UpgradeDatabaseToVersion37(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion38(sqlStore SqlStore) {
func upgradeDatabaseToVersion38(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_7_0, VERSION_3_8_0) {
// Add the IsPinned column to posts.
sqlStore.CreateColumnIfNotExists("Posts", "IsPinned", "boolean", "boolean", "0")
@@ -358,7 +358,7 @@ func UpgradeDatabaseToVersion38(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion39(sqlStore SqlStore) {
func upgradeDatabaseToVersion39(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_8_0, VERSION_3_9_0) {
sqlStore.CreateColumnIfNotExists("OAuthAccessData", "Scope", "varchar(128)", "varchar(128)", model.DEFAULT_SCOPE)
sqlStore.RemoveTableIfExists("PasswordRecovery")
@@ -367,19 +367,19 @@ func UpgradeDatabaseToVersion39(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion310(sqlStore SqlStore) {
func upgradeDatabaseToVersion310(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_9_0, VERSION_3_10_0) {
saveSchemaVersion(sqlStore, VERSION_3_10_0)
}
}
func UpgradeDatabaseToVersion40(sqlStore SqlStore) {
func upgradeDatabaseToVersion40(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_10_0, VERSION_4_0_0) {
saveSchemaVersion(sqlStore, VERSION_4_0_0)
}
}
func UpgradeDatabaseToVersion41(sqlStore SqlStore) {
func upgradeDatabaseToVersion41(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_0_0, VERSION_4_1_0) {
// Increase maximum length of the Users table Roles column.
if sqlStore.GetMaxLengthOfColumnIfExists("Users", "Roles") != "256" {
@@ -392,19 +392,19 @@ func UpgradeDatabaseToVersion41(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion42(sqlStore SqlStore) {
func upgradeDatabaseToVersion42(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_1_0, VERSION_4_2_0) {
saveSchemaVersion(sqlStore, VERSION_4_2_0)
}
}
func UpgradeDatabaseToVersion43(sqlStore SqlStore) {
func upgradeDatabaseToVersion43(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_2_0, VERSION_4_3_0) {
saveSchemaVersion(sqlStore, VERSION_4_3_0)
}
}
func UpgradeDatabaseToVersion44(sqlStore SqlStore) {
func upgradeDatabaseToVersion44(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_3_0, VERSION_4_4_0) {
// Add the IsActive column to UserAccessToken.
sqlStore.CreateColumnIfNotExists("UserAccessTokens", "IsActive", "boolean", "boolean", "1")
@@ -413,13 +413,13 @@ func UpgradeDatabaseToVersion44(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion45(sqlStore SqlStore) {
func upgradeDatabaseToVersion45(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_4_0, VERSION_4_5_0) {
saveSchemaVersion(sqlStore, VERSION_4_5_0)
}
}
func UpgradeDatabaseToVersion46(sqlStore SqlStore) {
func upgradeDatabaseToVersion46(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_5_0, VERSION_4_6_0) {
sqlStore.CreateColumnIfNotExists("IncomingWebhooks", "Username", "varchar(64)", "varchar(64)", "")
sqlStore.CreateColumnIfNotExists("IncomingWebhooks", "IconURL", "varchar(1024)", "varchar(1024)", "")
@@ -427,7 +427,7 @@ func UpgradeDatabaseToVersion46(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion47(sqlStore SqlStore) {
func upgradeDatabaseToVersion47(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_6_0, VERSION_4_7_0) {
sqlStore.AlterColumnTypeIfExists("Users", "Position", "varchar(128)", "varchar(128)")
sqlStore.AlterColumnTypeIfExists("OAuthAuthData", "State", "varchar(1024)", "varchar(1024)")
@@ -437,37 +437,37 @@ func UpgradeDatabaseToVersion47(sqlStore SqlStore) {
}
}
// If any new instances started with 4.7, they would have the bad Email column on the
// ChannelMemberHistory table. So for those cases we need to do an upgrade between
// 4.7.0 and 4.7.1
func UpgradeDatabaseToVersion471(sqlStore SqlStore) {
func upgradeDatabaseToVersion471(sqlStore SqlStore) {
// If any new instances started with 4.7, they would have the bad Email column on the
// ChannelMemberHistory table. So for those cases we need to do an upgrade between
// 4.7.0 and 4.7.1
if shouldPerformUpgrade(sqlStore, VERSION_4_7_0, VERSION_4_7_1) {
sqlStore.RemoveColumnIfExists("ChannelMemberHistory", "Email")
saveSchemaVersion(sqlStore, VERSION_4_7_1)
}
}
func UpgradeDatabaseToVersion472(sqlStore SqlStore) {
func upgradeDatabaseToVersion472(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_7_1, VERSION_4_7_2) {
sqlStore.RemoveIndexIfExists("idx_channels_displayname", "Channels")
saveSchemaVersion(sqlStore, VERSION_4_7_2)
}
}
func UpgradeDatabaseToVersion48(sqlStore SqlStore) {
func upgradeDatabaseToVersion48(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_7_2, VERSION_4_8_0) {
saveSchemaVersion(sqlStore, VERSION_4_8_0)
}
}
func UpgradeDatabaseToVersion481(sqlStore SqlStore) {
func upgradeDatabaseToVersion481(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_8_0, VERSION_4_8_1) {
sqlStore.RemoveIndexIfExists("idx_channels_displayname", "Channels")
saveSchemaVersion(sqlStore, VERSION_4_8_1)
}
}
func UpgradeDatabaseToVersion49(sqlStore SqlStore) {
func upgradeDatabaseToVersion49(sqlStore SqlStore) {
// This version of Mattermost includes an App-Layer migration which migrates from hard-coded roles configured by
// a number of parameters in `config.json` to a `Roles` table in the database. The migration code can be seen
// in the file `app/app.go` in the function `DoAdvancedPermissionsMigration()`.
@@ -485,7 +485,7 @@ func UpgradeDatabaseToVersion49(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion410(sqlStore SqlStore) {
func upgradeDatabaseToVersion410(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_4_9_0, VERSION_4_10_0) {
sqlStore.RemoveIndexIfExists("Name_2", "Channels")
@@ -497,7 +497,7 @@ func UpgradeDatabaseToVersion410(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion50(sqlStore SqlStore) {
func upgradeDatabaseToVersion50(sqlStore SqlStore) {
// This version of Mattermost includes an App-Layer migration which migrates from hard-coded emojis configured
// in `config.json` to a `Permission` in the database. The migration code can be seen
// in the file `app/app.go` in the function `DoEmojisPermissionsMigration()`.
@@ -536,13 +536,13 @@ func UpgradeDatabaseToVersion50(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion51(sqlStore SqlStore) {
func upgradeDatabaseToVersion51(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_0_0, VERSION_5_1_0) {
saveSchemaVersion(sqlStore, VERSION_5_1_0)
}
}
func UpgradeDatabaseToVersion52(sqlStore SqlStore) {
func upgradeDatabaseToVersion52(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_1_0, VERSION_5_2_0) {
sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "Username", "varchar(64)", "varchar(64)", "")
sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "IconURL", "varchar(1024)", "varchar(1024)", "")
@@ -550,13 +550,13 @@ func UpgradeDatabaseToVersion52(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion53(sqlStore SqlStore) {
func upgradeDatabaseToVersion53(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_2_0, VERSION_5_3_0) {
saveSchemaVersion(sqlStore, VERSION_5_3_0)
}
}
func UpgradeDatabaseToVersion54(sqlStore SqlStore) {
func upgradeDatabaseToVersion54(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_3_0, VERSION_5_4_0) {
sqlStore.AlterColumnTypeIfExists("OutgoingWebhooks", "Description", "varchar(500)", "varchar(500)")
sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "Description", "varchar(500)", "varchar(500)")
@@ -569,13 +569,13 @@ func UpgradeDatabaseToVersion54(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion55(sqlStore SqlStore) {
func upgradeDatabaseToVersion55(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_4_0, VERSION_5_5_0) {
saveSchemaVersion(sqlStore, VERSION_5_5_0)
}
}
func UpgradeDatabaseToVersion56(sqlStore SqlStore) {
func upgradeDatabaseToVersion56(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_5_0, VERSION_5_6_0) {
sqlStore.CreateColumnIfNotExists("PluginKeyValueStore", "ExpireAt", "bigint(20)", "bigint", "0")
@@ -595,15 +595,15 @@ func UpgradeDatabaseToVersion56(sqlStore SqlStore) {
}
func UpgradeDatabaseToVersion57(sqlStore SqlStore) {
func upgradeDatabaseToVersion57(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_6_0, VERSION_5_7_0) {
saveSchemaVersion(sqlStore, VERSION_5_7_0)
}
}
func UpgradeDatabaseToVersion58(sqlStore SqlStore) {
func upgradeDatabaseToVersion58(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_7_0, VERSION_5_8_0) {
// idx_channels_txt was removed in `UpgradeDatabaseToVersion50`, but merged as part of
// idx_channels_txt was removed in `upgradeDatabaseToVersion50`, but merged as part of
// v5.1, so the migration wouldn't apply to anyone upgrading from v5.0. Remove it again to
// bring the upgraded (from v5.0) and fresh install schemas back in sync.
sqlStore.RemoveIndexIfExists("idx_channels_txt", "Channels")
@@ -621,13 +621,13 @@ func UpgradeDatabaseToVersion58(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion59(sqlStore SqlStore) {
func upgradeDatabaseToVersion59(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_8_0, VERSION_5_9_0) {
saveSchemaVersion(sqlStore, VERSION_5_9_0)
}
}
func UpgradeDatabaseToVersion510(sqlStore SqlStore) {
func upgradeDatabaseToVersion510(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_9_0, VERSION_5_10_0) {
sqlStore.CreateColumnIfNotExistsNoDefault("Channels", "GroupConstrained", "tinyint(4)", "boolean")
sqlStore.CreateColumnIfNotExistsNoDefault("Teams", "GroupConstrained", "tinyint(4)", "boolean")
@@ -639,7 +639,7 @@ func UpgradeDatabaseToVersion510(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion511(sqlStore SqlStore) {
func upgradeDatabaseToVersion511(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_10_0, VERSION_5_11_0) {
// Enforce all teams have an InviteID set
var teams []*model.Team
@@ -658,7 +658,7 @@ func UpgradeDatabaseToVersion511(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion512(sqlStore SqlStore) {
func upgradeDatabaseToVersion512(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_11_0, VERSION_5_12_0) {
sqlStore.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeGuest", "boolean", "boolean")
sqlStore.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeGuest", "boolean", "boolean")
@@ -674,7 +674,7 @@ func UpgradeDatabaseToVersion512(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion513(sqlStore SqlStore) {
func upgradeDatabaseToVersion513(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_12_0, VERSION_5_13_0) {
// The previous jobs ran once per minute, cluttering the Jobs table with somewhat useless entries. Clean that up.
sqlStore.GetMaster().Exec("DELETE FROM Jobs WHERE Type = 'plugins'")
@@ -683,19 +683,19 @@ func UpgradeDatabaseToVersion513(sqlStore SqlStore) {
}
}
func UpgradeDatabaseToVersion514(sqlStore SqlStore) {
func upgradeDatabaseToVersion514(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_13_0, VERSION_5_14_0) {
saveSchemaVersion(sqlStore, VERSION_5_14_0)
}
}
func UpgradeDatabaseToVersion515(sqlStore SqlStore) {
func upgradeDatabaseToVersion515(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_14_0, VERSION_5_15_0) {
saveSchemaVersion(sqlStore, VERSION_5_15_0)
}
}
func UpgradeDatabaseToVersion516(sqlStore SqlStore) {
func upgradeDatabaseToVersion516(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_5_15_0, VERSION_5_16_0) {
if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES {
sqlStore.GetMaster().Exec("ALTER TABLE Tokens ALTER COLUMN Extra TYPE varchar(2048)")

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

@@ -15,41 +15,41 @@ func TestStoreUpgrade(t *testing.T) {
sqlStore := ss.(SqlStore)
t.Run("invalid currentModelVersion", func(t *testing.T) {
err := UpgradeDatabase(sqlStore, "notaversion")
err := upgradeDatabase(sqlStore, "notaversion")
require.EqualError(t, err, "failed to parse current model version notaversion: No Major.Minor.Patch elements found")
})
t.Run("upgrade from invalid version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "invalid")
err := UpgradeDatabase(sqlStore, "5.8.0")
err := upgradeDatabase(sqlStore, "5.8.0")
require.EqualError(t, err, "failed to parse database schema version invalid: No Major.Minor.Patch elements found")
require.Equal(t, "invalid", sqlStore.GetCurrentSchemaVersion())
})
t.Run("upgrade from unsupported version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "2.0.0")
err := UpgradeDatabase(sqlStore, "5.8.0")
err := upgradeDatabase(sqlStore, "5.8.0")
require.EqualError(t, err, "Database schema version 2.0.0 is no longer supported. This Mattermost server supports automatic upgrades from schema version 3.0.0 through schema version 5.8.0. Please manually upgrade to at least version 3.0.0 before continuing.")
require.Equal(t, "2.0.0", sqlStore.GetCurrentSchemaVersion())
})
t.Run("upgrade from earliest supported version", func(t *testing.T) {
saveSchemaVersion(sqlStore, VERSION_3_0_0)
err := UpgradeDatabase(sqlStore, CURRENT_SCHEMA_VERSION)
err := upgradeDatabase(sqlStore, CURRENT_SCHEMA_VERSION)
require.NoError(t, err)
require.Equal(t, CURRENT_SCHEMA_VERSION, sqlStore.GetCurrentSchemaVersion())
})
t.Run("upgrade from no existing version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "")
err := UpgradeDatabase(sqlStore, CURRENT_SCHEMA_VERSION)
err := upgradeDatabase(sqlStore, CURRENT_SCHEMA_VERSION)
require.NoError(t, err)
require.Equal(t, CURRENT_SCHEMA_VERSION, sqlStore.GetCurrentSchemaVersion())
})
t.Run("upgrade schema running earlier minor version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "5.1.0")
err := UpgradeDatabase(sqlStore, "5.8.0")
err := upgradeDatabase(sqlStore, "5.8.0")
require.NoError(t, err)
// Assert CURRENT_SCHEMA_VERSION, not 5.8.0, since the migrations will move
// past 5.8.0 regardless of the input parameter.
@@ -58,21 +58,21 @@ func TestStoreUpgrade(t *testing.T) {
t.Run("upgrade schema running later minor version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "5.29.0")
err := UpgradeDatabase(sqlStore, "5.8.0")
err := upgradeDatabase(sqlStore, "5.8.0")
require.NoError(t, err)
require.Equal(t, "5.29.0", sqlStore.GetCurrentSchemaVersion())
})
t.Run("upgrade schema running earlier major version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "4.1.0")
err := UpgradeDatabase(sqlStore, CURRENT_SCHEMA_VERSION)
err := upgradeDatabase(sqlStore, CURRENT_SCHEMA_VERSION)
require.NoError(t, err)
require.Equal(t, CURRENT_SCHEMA_VERSION, sqlStore.GetCurrentSchemaVersion())
})
t.Run("upgrade schema running later major version", func(t *testing.T) {
saveSchemaVersion(sqlStore, "6.0.0")
err := UpgradeDatabase(sqlStore, "5.8.0")
err := upgradeDatabase(sqlStore, "5.8.0")
require.EqualError(t, err, "Database schema version 6.0.0 is not supported. This Mattermost server supports only >=5.8.0, <6.0.0. Please upgrade to at least version 6.0.0 before continuing.")
require.Equal(t, "6.0.0", sqlStore.GetCurrentSchemaVersion())
})