From 74518ea165a06cfef0bfd0a3177f5b14fd76813f Mon Sep 17 00:00:00 2001 From: Claudio Costa Date: Fri, 20 Aug 2021 09:56:17 +0200 Subject: [PATCH] Combine alterations on Posts table (#18210) Co-authored-by: Mattermod --- store/sqlstore/upgrade.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/store/sqlstore/upgrade.go b/store/sqlstore/upgrade.go index 98d620a880..0e1873674e 100644 --- a/store/sqlstore/upgrade.go +++ b/store/sqlstore/upgrade.go @@ -1301,10 +1301,21 @@ func fixCRTChannelMembershipCounts(sqlStore *SqlStore) { func upgradeDatabaseToVersion600(sqlStore *SqlStore) { // if shouldPerformUpgrade(sqlStore, Version5380, Version600) { + if sqlStore.DriverName() == model.DatabaseDriverMysql { + if sqlStore.DoesColumnExist("Posts", "ParentId") { + sqlStore.GetMaster().ExecNoTimeout("ALTER TABLE Posts MODIFY COLUMN FileIds text, MODIFY COLUMN Props JSON, DROP COLUMN ParentId") + } else { + sqlStore.GetMaster().ExecNoTimeout("ALTER TABLE Posts MODIFY COLUMN FileIds text, MODIFY COLUMN Props JSON") + } + } + sqlStore.AlterColumnTypeIfExists("ChannelMembers", "NotifyProps", "JSON", "jsonb") sqlStore.AlterColumnTypeIfExists("Jobs", "Data", "JSON", "jsonb") sqlStore.AlterColumnTypeIfExists("LinkMetadata", "Data", "JSON", "jsonb") - sqlStore.AlterColumnTypeIfExists("Posts", "Props", "JSON", "jsonb") + + if sqlStore.DriverName() == model.DatabaseDriverPostgres { + sqlStore.AlterColumnTypeIfExists("Posts", "Props", "JSON", "jsonb") + } sqlStore.AlterColumnTypeIfExists("Sessions", "Props", "JSON", "jsonb") sqlStore.AlterColumnTypeIfExists("Threads", "Participants", "JSON", "jsonb") sqlStore.AlterColumnTypeIfExists("Users", "Props", "JSON", "jsonb") @@ -1312,12 +1323,15 @@ func upgradeDatabaseToVersion600(sqlStore *SqlStore) { sqlStore.AlterColumnTypeIfExists("Users", "Timezone", "JSON", "jsonb") sqlStore.GetMaster().ExecNoTimeout("UPDATE Posts SET RootId = ParentId WHERE RootId = '' AND RootId != ParentId") - sqlStore.RemoveColumnIfExists("Posts", "ParentId") + if sqlStore.DriverName() == model.DatabaseDriverPostgres { + sqlStore.RemoveColumnIfExists("Posts", "ParentId") + } sqlStore.GetMaster().ExecNoTimeout("UPDATE CommandWebhooks SET RootId = ParentId WHERE RootId = '' AND RootId != ParentId") sqlStore.RemoveColumnIfExists("CommandWebhooks", "ParentId") - // allow 10 files per post - sqlStore.AlterColumnTypeIfExists("Posts", "FileIds", "text", "varchar(300)") + if sqlStore.DriverName() == model.DatabaseDriverPostgres { + sqlStore.AlterColumnTypeIfExists("Posts", "FileIds", "text", "varchar(300)") + } // saveSchemaVersion(sqlStore, Version600) // }