* Only run performance heavy migration queries once

* Fix ordering and test
Этот коммит содержится в:
Claudio Costa
2021-04-16 10:37:21 +02:00
коммит произвёл GitHub
родитель 09a52aab3e
Коммит 03473f98ac
2 изменённых файлов: 16 добавлений и 4 удалений

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

@@ -1032,6 +1032,9 @@ func upgradeDatabaseToVersion535(sqlStore *SqlStore) {
sqlStore.CreateUniqueCompositeIndexIfNotExists(RemoteClusterSiteURLUniqueIndex, "RemoteClusters", uniquenessColumns)
sqlStore.CreateColumnIfNotExists("SharedChannelUsers", "ChannelId", "VARCHAR(26)", "VARCHAR(26)", "")
totalMsgCountRootExists := sqlStore.DoesColumnExist("Channels", "TotalMsgCountRoot")
msgCountRootExists := sqlStore.DoesColumnExist("ChannelMembers", "MsgCountRoot")
// note: setting default 0 on pre-5.0 tables causes test-db-migration script to fail, so this column will be added to ignore list
sqlStore.CreateColumnIfNotExists("ChannelMembers", "MentionCountRoot", "bigint", "bigint", "0")
sqlStore.AlterColumnDefaultIfExists("ChannelMembers", "MentionCountRoot", model.NewString("0"), model.NewString("0"))
@@ -1108,11 +1111,16 @@ func upgradeDatabaseToVersion535(sqlStore *SqlStore) {
SET MsgCountRoot=TotalMsgCountRoot
`
}
if _, err := sqlStore.GetMaster().Exec(updateChannels); err != nil {
mlog.Error("Error updating Channels table", mlog.Err(err))
if !totalMsgCountRootExists {
if _, err := sqlStore.GetMaster().Exec(updateChannels); err != nil {
mlog.Error("Error updating Channels table", mlog.Err(err))
}
}
if _, err := sqlStore.GetMaster().Exec(updateChannelMembers); err != nil {
mlog.Error("Error updating ChannelMembers table", mlog.Err(err))
if !msgCountRootExists {
if _, err := sqlStore.GetMaster().Exec(updateChannelMembers); err != nil {
mlog.Error("Error updating ChannelMembers table", mlog.Err(err))
}
}
// saveSchemaVersion(sqlStore, Version5350)

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

@@ -221,6 +221,10 @@ func TestMsgCountRootMigration(t *testing.T) {
}
}
_, err = sqlStore.GetMaster().Exec(`ALTER TABLE Channels DROP COLUMN TotalMsgCountRoot`)
require.NoError(t, err)
_, err = sqlStore.GetMaster().Exec(`ALTER TABLE ChannelMembers DROP COLUMN MsgCountRoot`)
require.NoError(t, err)
upgradeDatabaseToVersion535(sqlStore)
members, err := ss.Channel().GetMembersByIds(channel.Id, userIds)