Add missing transaction rollbacks for SQL store (#9964)

* Add missing transaction rollbacks for SQL store

* Add `defer transaction.Rollback()` in SQL stores.

* abstract finalizeTransaction
Этот коммит содержится в:
κουκουλοφόρος
2019-02-23 19:44:52 +00:00
коммит произвёл Lev
родитель b4d645f121
Коммит 5b24c44e19
11 изменённых файлов: 49 добавлений и 108 удалений

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

@@ -173,15 +173,18 @@ func UpgradeDatabaseToVersion33(sqlStore SqlStore) {
if err != nil {
themeMigrationFailed(err)
}
defer finalizeTransaction(transaction)
// increase size of Value column of Preferences table to match the size of the ThemeProps column
if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES {
if _, err := transaction.Exec("ALTER TABLE Preferences ALTER COLUMN Value TYPE varchar(2000)"); err != nil {
themeMigrationFailed(err)
return
}
} else if sqlStore.DriverName() == model.DATABASE_DRIVER_MYSQL {
if _, err := transaction.Exec("ALTER TABLE Preferences MODIFY Value text"); err != nil {
themeMigrationFailed(err)
return
}
}
@@ -196,15 +199,18 @@ func UpgradeDatabaseToVersion33(sqlStore SqlStore) {
WHERE
Users.ThemeProps != 'null'`, params); err != nil {
themeMigrationFailed(err)
return
}
// delete old data
if _, err := transaction.Exec("ALTER TABLE Users DROP COLUMN ThemeProps"); err != nil {
themeMigrationFailed(err)
return
}
if err := transaction.Commit(); err != nil {
themeMigrationFailed(err)
return
}
// rename solarized_* code themes to solarized-* to match client changes in 3.0