Fix 5.35 migration (#17416)
* Only run performance heavy migration queries once * Fix ordering and test
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
09a52aab3e
Коммит
03473f98ac
@@ -1032,6 +1032,9 @@ func upgradeDatabaseToVersion535(sqlStore *SqlStore) {
|
|||||||
sqlStore.CreateUniqueCompositeIndexIfNotExists(RemoteClusterSiteURLUniqueIndex, "RemoteClusters", uniquenessColumns)
|
sqlStore.CreateUniqueCompositeIndexIfNotExists(RemoteClusterSiteURLUniqueIndex, "RemoteClusters", uniquenessColumns)
|
||||||
sqlStore.CreateColumnIfNotExists("SharedChannelUsers", "ChannelId", "VARCHAR(26)", "VARCHAR(26)", "")
|
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
|
// 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.CreateColumnIfNotExists("ChannelMembers", "MentionCountRoot", "bigint", "bigint", "0")
|
||||||
sqlStore.AlterColumnDefaultIfExists("ChannelMembers", "MentionCountRoot", model.NewString("0"), model.NewString("0"))
|
sqlStore.AlterColumnDefaultIfExists("ChannelMembers", "MentionCountRoot", model.NewString("0"), model.NewString("0"))
|
||||||
@@ -1108,11 +1111,16 @@ func upgradeDatabaseToVersion535(sqlStore *SqlStore) {
|
|||||||
SET MsgCountRoot=TotalMsgCountRoot
|
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 {
|
if !msgCountRootExists {
|
||||||
mlog.Error("Error updating ChannelMembers table", mlog.Err(err))
|
if _, err := sqlStore.GetMaster().Exec(updateChannelMembers); err != nil {
|
||||||
|
mlog.Error("Error updating ChannelMembers table", mlog.Err(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// saveSchemaVersion(sqlStore, Version5350)
|
// 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)
|
upgradeDatabaseToVersion535(sqlStore)
|
||||||
|
|
||||||
members, err := ss.Channel().GetMembersByIds(channel.Id, userIds)
|
members, err := ss.Channel().GetMembersByIds(channel.Id, userIds)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user