summaryrefslogtreecommitdiffstats
path: root/store/sql_upgrade.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-06-27 08:02:08 -0700
committerGitHub <noreply@github.com>2017-06-27 08:02:08 -0700
commit9659a6da06852ede9bf6b87c0e39a543e88a5034 (patch)
tree56408b6104465af171a03f6a7eeb0b01099ab5e4 /store/sql_upgrade.go
parent28bf900205c71259369f9a05b349786a39084f5d (diff)
downloadchat-9659a6da06852ede9bf6b87c0e39a543e88a5034.tar.gz
chat-9659a6da06852ede9bf6b87c0e39a543e88a5034.tar.bz2
chat-9659a6da06852ede9bf6b87c0e39a543e88a5034.zip
Stage 1 of caching layer. Framework (#6693)
Diffstat (limited to 'store/sql_upgrade.go')
-rw-r--r--store/sql_upgrade.go42
1 files changed, 20 insertions, 22 deletions
diff --git a/store/sql_upgrade.go b/store/sql_upgrade.go
index 11b726712..ef255c5c2 100644
--- a/store/sql_upgrade.go
+++ b/store/sql_upgrade.go
@@ -36,7 +36,7 @@ const (
EXIT_THEME_MIGRATION = 1004
)
-func UpgradeDatabase(sqlStore *SqlStore) {
+func UpgradeDatabase(sqlStore SqlStore) {
UpgradeDatabaseToVersion31(sqlStore)
UpgradeDatabaseToVersion32(sqlStore)
@@ -52,38 +52,36 @@ func UpgradeDatabase(sqlStore *SqlStore) {
// If the SchemaVersion is empty this this is the first time it has ran
// so lets set it to the current version.
- if sqlStore.SchemaVersion == "" {
- if result := <-sqlStore.system.SaveOrUpdate(&model.System{Name: "Version", Value: model.CurrentVersion}); result.Err != nil {
+ if sqlStore.GetCurrentSchemaVersion() == "" {
+ if result := <-sqlStore.System().SaveOrUpdate(&model.System{Name: "Version", Value: model.CurrentVersion}); result.Err != nil {
l4g.Critical(result.Err.Error())
time.Sleep(time.Second)
os.Exit(EXIT_VERSION_SAVE_MISSING)
}
- sqlStore.SchemaVersion = model.CurrentVersion
l4g.Info(utils.T("store.sql.schema_set.info"), model.CurrentVersion)
}
// If we're not on the current version then it's too old to be upgraded
- if sqlStore.SchemaVersion != model.CurrentVersion {
- l4g.Critical(utils.T("store.sql.schema_version.critical"), sqlStore.SchemaVersion)
+ if sqlStore.GetCurrentSchemaVersion() != model.CurrentVersion {
+ l4g.Critical(utils.T("store.sql.schema_version.critical"), sqlStore.GetCurrentSchemaVersion())
time.Sleep(time.Second)
os.Exit(EXIT_TOO_OLD)
}
}
-func saveSchemaVersion(sqlStore *SqlStore, version string) {
- if result := <-sqlStore.system.Update(&model.System{Name: "Version", Value: version}); result.Err != nil {
+func saveSchemaVersion(sqlStore SqlStore, version string) {
+ if result := <-sqlStore.System().Update(&model.System{Name: "Version", Value: version}); result.Err != nil {
l4g.Critical(result.Err.Error())
time.Sleep(time.Second)
os.Exit(EXIT_VERSION_SAVE)
}
- sqlStore.SchemaVersion = version
l4g.Warn(utils.T("store.sql.upgraded.warn"), version)
}
-func shouldPerformUpgrade(sqlStore *SqlStore, currentSchemaVersion string, expectedSchemaVersion string) bool {
- if sqlStore.SchemaVersion == currentSchemaVersion {
+func shouldPerformUpgrade(sqlStore SqlStore, currentSchemaVersion string, expectedSchemaVersion string) bool {
+ if sqlStore.GetCurrentSchemaVersion() == currentSchemaVersion {
l4g.Warn(utils.T("store.sql.schema_out_of_date.warn"), currentSchemaVersion)
l4g.Warn(utils.T("store.sql.schema_upgrade_attempt.warn"), expectedSchemaVersion)
@@ -93,14 +91,14 @@ func shouldPerformUpgrade(sqlStore *SqlStore, currentSchemaVersion string, expec
return false
}
-func UpgradeDatabaseToVersion31(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion31(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_0_0, VERSION_3_1_0) {
sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "ContentType", "varchar(128)", "varchar(128)", "")
saveSchemaVersion(sqlStore, VERSION_3_1_0)
}
}
-func UpgradeDatabaseToVersion32(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion32(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_1_0, VERSION_3_2_0) {
sqlStore.CreateColumnIfNotExists("TeamMembers", "DeleteAt", "bigint(20)", "bigint", "0")
@@ -114,7 +112,7 @@ func themeMigrationFailed(err error) {
os.Exit(EXIT_THEME_MIGRATION)
}
-func UpgradeDatabaseToVersion33(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion33(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_2_0, VERSION_3_3_0) {
if sqlStore.DoesColumnExist("Users", "ThemeProps") {
params := map[string]interface{}{
@@ -191,7 +189,7 @@ func UpgradeDatabaseToVersion33(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion34(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion34(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_3_0, VERSION_3_4_0) {
sqlStore.CreateColumnIfNotExists("Status", "Manual", "BOOLEAN", "BOOLEAN", "0")
sqlStore.CreateColumnIfNotExists("Status", "ActiveChannel", "varchar(26)", "varchar(26)", "")
@@ -200,7 +198,7 @@ func UpgradeDatabaseToVersion34(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion35(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion35(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_4_0, VERSION_3_5_0) {
sqlStore.GetMaster().Exec("UPDATE Users SET Roles = 'system_user' WHERE Roles = ''")
sqlStore.GetMaster().Exec("UPDATE Users SET Roles = 'system_user system_admin' WHERE Roles = 'system_admin'")
@@ -223,7 +221,7 @@ func UpgradeDatabaseToVersion35(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion36(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion36(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_5_0, VERSION_3_6_0) {
sqlStore.CreateColumnIfNotExists("Posts", "HasReactions", "tinyint", "boolean", "0")
@@ -240,7 +238,7 @@ func UpgradeDatabaseToVersion36(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion37(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion37(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_6_0, VERSION_3_7_0) {
// Add EditAt column to Posts
sqlStore.CreateColumnIfNotExists("Posts", "EditAt", " bigint", " bigint", "0")
@@ -249,7 +247,7 @@ func UpgradeDatabaseToVersion37(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion38(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion38(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_7_0, VERSION_3_8_0) {
// Add the IsPinned column to posts.
sqlStore.CreateColumnIfNotExists("Posts", "IsPinned", "boolean", "boolean", "0")
@@ -258,7 +256,7 @@ func UpgradeDatabaseToVersion38(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion39(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion39(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_8_0, VERSION_3_9_0) {
sqlStore.CreateColumnIfNotExists("OAuthAccessData", "Scope", "varchar(128)", "varchar(128)", model.DEFAULT_SCOPE)
sqlStore.RemoveTableIfExists("PasswordRecovery")
@@ -267,13 +265,13 @@ func UpgradeDatabaseToVersion39(sqlStore *SqlStore) {
}
}
-func UpgradeDatabaseToVersion310(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion310(sqlStore SqlStore) {
if shouldPerformUpgrade(sqlStore, VERSION_3_9_0, VERSION_3_10_0) {
saveSchemaVersion(sqlStore, VERSION_3_10_0)
}
}
-func UpgradeDatabaseToVersion40(sqlStore *SqlStore) {
+func UpgradeDatabaseToVersion40(sqlStore SqlStore) {
// TODO: Uncomment following condition when version 4.0.0 is released
//if shouldPerformUpgrade(sqlStore, VERSION_3_10_0, VERSION_4_0_0) {