diff --git a/store/sqlstore/upgrade.go b/store/sqlstore/upgrade.go index c22f76db17..f6cbc54462 100644 --- a/store/sqlstore/upgrade.go +++ b/store/sqlstore/upgrade.go @@ -980,19 +980,42 @@ func hasMissingMigrationsVersion532(sqlStore *SqlStore) bool { } } + if !sqlStore.DoesColumnExist("Channels", "Shared") { + return true + } + + if !sqlStore.DoesColumnExist("ThreadMemberships", "UnreadMentions") { + return true + } + + if !sqlStore.DoesColumnExist("Reactions", "UpdateAt") { + return true + } + + if !sqlStore.DoesColumnExist("Reactions", "DeleteAt") { + return true + } + return false } func upgradeDatabaseToVersion532(sqlStore *SqlStore) { - if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES && hasMissingMigrationsVersion532(sqlStore) { - sqlStore.AlterColumnTypeIfExists("Posts", "FileIds", "text", "varchar(300)") - } - if shouldPerformUpgrade(sqlStore, Version5310, Version5320) { + if hasMissingMigrationsVersion532(sqlStore) { + // this migration was reverted on MySQL due to performance reasons. Doing + // it only on PostgreSQL for the time being. + if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES { + // allow 10 files per post + sqlStore.AlterColumnTypeIfExists("Posts", "FileIds", "text", "varchar(300)") + } + sqlStore.CreateColumnIfNotExists("ThreadMemberships", "UnreadMentions", "bigint", "bigint", "0") // Shared channels support sqlStore.CreateColumnIfNotExistsNoDefault("Channels", "Shared", "tinyint(1)", "boolean") sqlStore.CreateColumnIfNotExistsNoDefault("Reactions", "UpdateAt", "bigint", "bigint") sqlStore.CreateColumnIfNotExistsNoDefault("Reactions", "DeleteAt", "bigint", "bigint") + } + + if shouldPerformUpgrade(sqlStore, Version5310, Version5320) { saveSchemaVersion(sqlStore, Version5320) } }