diff options
Diffstat (limited to 'store/sql_store.go')
-rw-r--r-- | store/sql_store.go | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/store/sql_store.go b/store/sql_store.go index adac47b4d..6dcf2e8cd 100644 --- a/store/sql_store.go +++ b/store/sql_store.go @@ -40,6 +40,7 @@ type SqlStore struct { session SessionStore oauth OAuthStore system SystemStore + webhook WebhookStore } func NewSqlStore() Store { @@ -50,11 +51,18 @@ func NewSqlStore() Store { utils.Cfg.SqlSettings.DataSource, utils.Cfg.SqlSettings.MaxIdleConns, utils.Cfg.SqlSettings.MaxOpenConns, utils.Cfg.SqlSettings.Trace) - sqlStore.replicas = make([]*gorp.DbMap, len(utils.Cfg.SqlSettings.DataSourceReplicas)) - for i, replica := range utils.Cfg.SqlSettings.DataSourceReplicas { - sqlStore.replicas[i] = setupConnection(fmt.Sprintf("replica-%v", i), utils.Cfg.SqlSettings.DriverName, replica, + if len(utils.Cfg.SqlSettings.DataSourceReplicas) == 0 { + sqlStore.replicas = make([]*gorp.DbMap, 1) + sqlStore.replicas[0] = setupConnection(fmt.Sprintf("replica-%v", 0), utils.Cfg.SqlSettings.DriverName, utils.Cfg.SqlSettings.DataSource, utils.Cfg.SqlSettings.MaxIdleConns, utils.Cfg.SqlSettings.MaxOpenConns, utils.Cfg.SqlSettings.Trace) + } else { + sqlStore.replicas = make([]*gorp.DbMap, len(utils.Cfg.SqlSettings.DataSourceReplicas)) + for i, replica := range utils.Cfg.SqlSettings.DataSourceReplicas { + sqlStore.replicas[i] = setupConnection(fmt.Sprintf("replica-%v", i), utils.Cfg.SqlSettings.DriverName, replica, + utils.Cfg.SqlSettings.MaxIdleConns, utils.Cfg.SqlSettings.MaxOpenConns, + utils.Cfg.SqlSettings.Trace) + } } schemaVersion := sqlStore.GetCurrentSchemaVersion() @@ -91,6 +99,7 @@ func NewSqlStore() Store { sqlStore.session = NewSqlSessionStore(sqlStore) sqlStore.oauth = NewSqlOAuthStore(sqlStore) sqlStore.system = NewSqlSystemStore(sqlStore) + sqlStore.webhook = NewSqlWebhookStore(sqlStore) sqlStore.master.CreateTablesIfNotExists() @@ -102,6 +111,7 @@ func NewSqlStore() Store { sqlStore.session.(*SqlSessionStore).UpgradeSchemaIfNeeded() sqlStore.oauth.(*SqlOAuthStore).UpgradeSchemaIfNeeded() sqlStore.system.(*SqlSystemStore).UpgradeSchemaIfNeeded() + sqlStore.webhook.(*SqlWebhookStore).UpgradeSchemaIfNeeded() sqlStore.team.(*SqlTeamStore).CreateIndexesIfNotExists() sqlStore.channel.(*SqlChannelStore).CreateIndexesIfNotExists() @@ -111,6 +121,7 @@ func NewSqlStore() Store { sqlStore.session.(*SqlSessionStore).CreateIndexesIfNotExists() sqlStore.oauth.(*SqlOAuthStore).CreateIndexesIfNotExists() sqlStore.system.(*SqlSystemStore).CreateIndexesIfNotExists() + sqlStore.webhook.(*SqlWebhookStore).CreateIndexesIfNotExists() if model.IsPreviousVersion(schemaVersion) { sqlStore.system.Update(&model.System{Name: "Version", Value: model.CurrentVersion}) @@ -304,26 +315,21 @@ func (ss SqlStore) CreateColumnIfNotExists(tableName string, columnName string, } } -// func (ss SqlStore) RemoveColumnIfExists(tableName string, columnName string) bool { - -// // XXX TODO FIXME this should be removed after 0.6.0 -// if utils.Cfg.SqlSettings.DriverName == "postgres" { -// return false -// } +func (ss SqlStore) RemoveColumnIfExists(tableName string, columnName string) bool { -// if !ss.DoesColumnExist(tableName, columnName) { -// return false -// } + if !ss.DoesColumnExist(tableName, columnName) { + return false + } -// _, err := ss.GetMaster().Exec("ALTER TABLE " + tableName + " DROP COLUMN " + columnName) -// if err != nil { -// l4g.Critical("Failed to drop column %v", err) -// time.Sleep(time.Second) -// panic("Failed to drop column " + err.Error()) -// } + _, err := ss.GetMaster().Exec("ALTER TABLE " + tableName + " DROP COLUMN " + columnName) + if err != nil { + l4g.Critical("Failed to drop column %v", err) + time.Sleep(time.Second) + panic("Failed to drop column " + err.Error()) + } -// return true -// } + return true +} // func (ss SqlStore) RenameColumnIfExists(tableName string, oldColumnName string, newColumnName string, colType string) bool { @@ -469,6 +475,10 @@ func (ss SqlStore) System() SystemStore { return ss.system } +func (ss SqlStore) Webhook() WebhookStore { + return ss.webhook +} + type mattermConverter struct{} func (me mattermConverter) ToDb(val interface{}) (interface{}, error) { |