diff --git a/store/sqlstore/upgrade.go b/store/sqlstore/upgrade.go index 92860c0ebc..f101516883 100644 --- a/store/sqlstore/upgrade.go +++ b/store/sqlstore/upgrade.go @@ -19,7 +19,7 @@ import ( ) const ( - CURRENT_SCHEMA_VERSION = VERSION_5_27_0 + CURRENT_SCHEMA_VERSION = VERSION_5_28_0 VERSION_5_28_0 = "5.28.0" VERSION_5_27_0 = "5.27.0" VERSION_5_26_0 = "5.26.0" @@ -835,23 +835,22 @@ func upgradeDatabaseToVersion527(sqlStore SqlStore) { } func upgradeDatabaseToVersion528(sqlStore SqlStore) { - // TODO: uncomment when the time arrive to upgrade the DB for 5.28 - //if shouldPerformUpgrade(sqlStore, VERSION_5_27_0, VERSION_5_28_0) { - if err := precheckMigrationToVersion528(sqlStore); err != nil { - mlog.Error("Error upgrading DB schema to 5.28.0", mlog.Err(err)) - os.Exit(EXIT_GENERIC_FAILURE) + if shouldPerformUpgrade(sqlStore, VERSION_5_27_0, VERSION_5_28_0) { + if err := precheckMigrationToVersion528(sqlStore); err != nil { + mlog.Error("Error upgrading DB schema to 5.28.0", mlog.Err(err)) + os.Exit(EXIT_GENERIC_FAILURE) + } + + sqlStore.CreateColumnIfNotExistsNoDefault("Commands", "PluginId", "VARCHAR(190)", "VARCHAR(190)") + sqlStore.GetMaster().Exec("UPDATE Commands SET PluginId = '' WHERE PluginId IS NULL") + + sqlStore.AlterColumnTypeIfExists("Teams", "Type", "VARCHAR(255)", "VARCHAR(255)") + sqlStore.AlterColumnTypeIfExists("Teams", "SchemeId", "VARCHAR(26)", "VARCHAR(26)") + sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "Username", "varchar(255)", "varchar(255)") + sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "IconURL", "text", "varchar(1024)") + + saveSchemaVersion(sqlStore, VERSION_5_28_0) } - - sqlStore.CreateColumnIfNotExistsNoDefault("Commands", "PluginId", "VARCHAR(190)", "VARCHAR(190)") - sqlStore.GetMaster().Exec("UPDATE Commands SET PluginId = '' WHERE PluginId IS NULL") - - sqlStore.AlterColumnTypeIfExists("Teams", "Type", "VARCHAR(255)", "VARCHAR(255)") - sqlStore.AlterColumnTypeIfExists("Teams", "SchemeId", "VARCHAR(26)", "VARCHAR(26)") - sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "Username", "varchar(255)", "varchar(255)") - sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "IconURL", "text", "varchar(1024)") - - //saveSchemaVersion(sqlStore, VERSION_5_28_0) - //} } func precheckMigrationToVersion528(sqlStore SqlStore) error { @@ -880,12 +879,11 @@ func precheckMigrationToVersion528(sqlStore SqlStore) error { return err } - var schemeIdWrong int - var typeWrong int + var schemeIDWrong, typeWrong int row := sqlStore.GetMaster().Db.QueryRow(teamsQuery) - if err = row.Scan(&schemeIdWrong, &typeWrong); err != nil && err != sql.ErrNoRows { + if err = row.Scan(&schemeIDWrong, &typeWrong); err != nil && err != sql.ErrNoRows { return err - } else if err == nil && schemeIdWrong > 0 { + } else if err == nil && schemeIDWrong > 0 { return errors.New("Migration failure: " + "Teams column SchemeId has data larger that 26 characters") } else if err == nil && typeWrong > 0 { @@ -893,8 +891,7 @@ func precheckMigrationToVersion528(sqlStore SqlStore) error { "Teams column Type has data larger that 255 characters") } - var usernameWrong int - var iconURLWrong int + var usernameWrong, iconURLWrong int row = sqlStore.GetMaster().Db.QueryRow(webhooksQuery) if err = row.Scan(&usernameWrong, &iconURLWrong); err != nil && err != sql.ErrNoRows { mlog.Error("Error fetching IncomingWebhooks columns data", mlog.Err(err))