summaryrefslogtreecommitdiffstats
path: root/store
diff options
context:
space:
mode:
author=Corey Hulen <corey@hulen.com>2015-09-16 17:37:11 -0700
committer=Corey Hulen <corey@hulen.com>2015-09-16 17:37:11 -0700
commitcef7a1aae4205ebf4fbd8958f1f870ff69759edf (patch)
treea3bbd45979a89f9a4030f750b1a30099d7e565b9 /store
parente644b53b72d346539f5c58cc0cb0a07c4054cbcb (diff)
downloadchat-cef7a1aae4205ebf4fbd8958f1f870ff69759edf.tar.gz
chat-cef7a1aae4205ebf4fbd8958f1f870ff69759edf.tar.bz2
chat-cef7a1aae4205ebf4fbd8958f1f870ff69759edf.zip
PLT-92 Adding server side versioning to the binary
Diffstat (limited to 'store')
-rw-r--r--store/sql_post_store.go4
-rw-r--r--store/sql_post_store_test.go8
-rw-r--r--store/sql_store.go7
-rw-r--r--store/sql_user_store.go4
4 files changed, 15 insertions, 8 deletions
diff --git a/store/sql_post_store.go b/store/sql_post_store.go
index 20de23eb7..50e1c3c33 100644
--- a/store/sql_post_store.go
+++ b/store/sql_post_store.go
@@ -196,9 +196,9 @@ func (s SqlPostStore) GetEtag(channelId string) StoreChannel {
var et etagPosts
err := s.GetReplica().SelectOne(&et, "SELECT Id, UpdateAt FROM Posts WHERE ChannelId = :ChannelId ORDER BY UpdateAt DESC LIMIT 1", map[string]interface{}{"ChannelId": channelId})
if err != nil {
- result.Data = fmt.Sprintf("%v.0.%v", model.ETAG_ROOT_VERSION, model.GetMillis())
+ result.Data = fmt.Sprintf("%v.0.%v", model.GetFullVersion(), model.GetMillis())
} else {
- result.Data = fmt.Sprintf("%v.%v.%v", model.ETAG_ROOT_VERSION, et.Id, et.UpdateAt)
+ result.Data = fmt.Sprintf("%v.%v.%v", model.GetFullVersion(), et.Id, et.UpdateAt)
}
storeChannel <- result
diff --git a/store/sql_post_store_test.go b/store/sql_post_store_test.go
index d48dea51c..bec2ceb60 100644
--- a/store/sql_post_store_test.go
+++ b/store/sql_post_store_test.go
@@ -37,14 +37,14 @@ func TestPostStoreGet(t *testing.T) {
o1.Message = "a" + model.NewId() + "b"
etag1 := (<-store.Post().GetEtag(o1.ChannelId)).Data.(string)
- if strings.Index(etag1, model.ETAG_ROOT_VERSION+".0.") != 0 {
+ if strings.Index(etag1, model.GetFullVersion()+".0.") != 0 {
t.Fatal("Invalid Etag")
}
o1 = (<-store.Post().Save(o1)).Data.(*model.Post)
etag2 := (<-store.Post().GetEtag(o1.ChannelId)).Data.(string)
- if strings.Index(etag2, model.ETAG_ROOT_VERSION+"."+o1.Id) != 0 {
+ if strings.Index(etag2, model.GetFullVersion()+"."+o1.Id) != 0 {
t.Fatal("Invalid Etag")
}
@@ -136,7 +136,7 @@ func TestPostStoreDelete(t *testing.T) {
o1.Message = "a" + model.NewId() + "b"
etag1 := (<-store.Post().GetEtag(o1.ChannelId)).Data.(string)
- if strings.Index(etag1, model.ETAG_ROOT_VERSION+".0.") != 0 {
+ if strings.Index(etag1, model.GetFullVersion()+".0.") != 0 {
t.Fatal("Invalid Etag")
}
@@ -160,7 +160,7 @@ func TestPostStoreDelete(t *testing.T) {
}
etag2 := (<-store.Post().GetEtag(o1.ChannelId)).Data.(string)
- if strings.Index(etag2, model.ETAG_ROOT_VERSION+"."+o1.Id) != 0 {
+ if strings.Index(etag2, model.GetFullVersion()+"."+o1.Id) != 0 {
t.Fatal("Invalid Etag")
}
}
diff --git a/store/sql_store.go b/store/sql_store.go
index c0b3c2021..6ba73a0e5 100644
--- a/store/sql_store.go
+++ b/store/sql_store.go
@@ -56,6 +56,8 @@ func NewSqlStore() Store {
utils.Cfg.SqlSettings.Trace)
}
+ //version := sqlStore.GetCurrentSchemaVersion()
+
// Temporary upgrade code, remove after 0.8.0 release
if sqlStore.DoesColumnExist("Sessions", "AltId") {
sqlStore.GetMaster().Exec("DROP TABLE IF EXISTS Sessions")
@@ -131,6 +133,11 @@ func setupConnection(con_type string, driver string, dataSource string, maxIdle
return dbmap
}
+func (ss SqlStore) GetCurrentSchemaVersion() string {
+ version, _ := ss.GetMaster().SelectStr("SELECT PropVal FROM MattermostSystem WHERE PropName='SchemaVersion'")
+ return version
+}
+
func (ss SqlStore) DoesColumnExist(tableName string, columnName string) bool {
if utils.Cfg.SqlSettings.DriverName == "postgres" {
count, err := ss.GetMaster().SelectInt(
diff --git a/store/sql_user_store.go b/store/sql_user_store.go
index 52d670d56..90e1343a8 100644
--- a/store/sql_user_store.go
+++ b/store/sql_user_store.go
@@ -325,9 +325,9 @@ func (s SqlUserStore) GetEtagForProfiles(teamId string) StoreChannel {
updateAt, err := s.GetReplica().SelectInt("SELECT UpdateAt FROM Users WHERE TeamId = :TeamId ORDER BY UpdateAt DESC LIMIT 1", map[string]interface{}{"TeamId": teamId})
if err != nil {
- result.Data = fmt.Sprintf("%v.%v", model.ETAG_ROOT_VERSION, model.GetMillis())
+ result.Data = fmt.Sprintf("%v.%v", model.GetFullVersion(), model.GetMillis())
} else {
- result.Data = fmt.Sprintf("%v.%v", model.ETAG_ROOT_VERSION, updateAt)
+ result.Data = fmt.Sprintf("%v.%v", model.GetFullVersion(), updateAt)
}
storeChannel <- result