diff --git a/store/sqlstore/audit_store.go b/store/sqlstore/audit_store.go index b33e8698c2..c29be5df12 100644 --- a/store/sqlstore/audit_store.go +++ b/store/sqlstore/audit_store.go @@ -12,13 +12,13 @@ import ( ) type SqlAuditStore struct { - SqlStore + *SqlSupplier } -func newSqlAuditStore(sqlStore SqlStore) store.AuditStore { - s := &SqlAuditStore{sqlStore} +func newSqlAuditStore(sqlSupplier *SqlSupplier) store.AuditStore { + s := &SqlAuditStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Audit{}, "Audits").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("UserId").SetMaxSize(26) diff --git a/store/sqlstore/bot_store.go b/store/sqlstore/bot_store.go index 788aad04ae..62f380f6fd 100644 --- a/store/sqlstore/bot_store.go +++ b/store/sqlstore/bot_store.go @@ -42,18 +42,18 @@ func botFromModel(b *model.Bot) *bot { // Bots are otherwise normal users with extra metadata record in the Bots table. The primary key // for a bot matches the primary key value for corresponding User record. type SqlBotStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface } // newSqlBotStore creates an instance of SqlBotStore, registering the table schema in question. -func newSqlBotStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.BotStore { +func newSqlBotStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.BotStore { us := &SqlBotStore{ - SqlStore: sqlStore, - metrics: metrics, + SqlSupplier: sqlSupplier, + metrics: metrics, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(bot{}, "Bots").SetKeys(false, "UserId") table.ColMap("UserId").SetMaxSize(26) table.ColMap("Description").SetMaxSize(1024) diff --git a/store/sqlstore/channel_member_history_store.go b/store/sqlstore/channel_member_history_store.go index 75d20de67d..bda88f5927 100644 --- a/store/sqlstore/channel_member_history_store.go +++ b/store/sqlstore/channel_member_history_store.go @@ -17,15 +17,15 @@ import ( ) type SqlChannelMemberHistoryStore struct { - SqlStore + *SqlSupplier } -func newSqlChannelMemberHistoryStore(sqlStore SqlStore) store.ChannelMemberHistoryStore { +func newSqlChannelMemberHistoryStore(sqlSupplier *SqlSupplier) store.ChannelMemberHistoryStore { s := &SqlChannelMemberHistoryStore{ - SqlStore: sqlStore, + SqlSupplier: sqlSupplier, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.ChannelMemberHistory{}, "ChannelMemberHistory").SetKeys(false, "ChannelId", "UserId", "JoinTime") table.ColMap("ChannelId").SetMaxSize(26) table.ColMap("UserId").SetMaxSize(26) diff --git a/store/sqlstore/channel_store.go b/store/sqlstore/channel_store.go index b676a7c579..69bba27cb3 100644 --- a/store/sqlstore/channel_store.go +++ b/store/sqlstore/channel_store.go @@ -33,7 +33,7 @@ const ( ) type SqlChannelStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface } @@ -356,13 +356,13 @@ func (s SqlChannelStore) ClearCaches() { } } -func newSqlChannelStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.ChannelStore { +func newSqlChannelStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.ChannelStore { s := &SqlChannelStore{ - SqlStore: sqlStore, - metrics: metrics, + SqlSupplier: sqlSupplier, + metrics: metrics, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Channel{}, "Channels").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("TeamId").SetMaxSize(26) diff --git a/store/sqlstore/channel_store_test.go b/store/sqlstore/channel_store_test.go index 73bdacba96..5da518a407 100644 --- a/store/sqlstore/channel_store_test.go +++ b/store/sqlstore/channel_store_test.go @@ -28,7 +28,7 @@ func TestChannelSearchQuerySQLInjection(t *testing.T) { for _, st := range storeTypes { t.Run(st.Name, func(t *testing.T) { s := &SqlChannelStore{ - SqlStore: st.SqlSupplier, + SqlSupplier: st.SqlSupplier, } opts := store.ChannelSearchOpts{} diff --git a/store/sqlstore/cluster_discovery_store.go b/store/sqlstore/cluster_discovery_store.go index 81ff727905..453e57d9af 100644 --- a/store/sqlstore/cluster_discovery_store.go +++ b/store/sqlstore/cluster_discovery_store.go @@ -12,13 +12,13 @@ import ( ) type sqlClusterDiscoveryStore struct { - SqlStore + *SqlSupplier } -func newSqlClusterDiscoveryStore(sqlStore SqlStore) store.ClusterDiscoveryStore { - s := &sqlClusterDiscoveryStore{sqlStore} +func newSqlClusterDiscoveryStore(sqlSupplier *SqlSupplier) store.ClusterDiscoveryStore { + s := &sqlClusterDiscoveryStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.ClusterDiscovery{}, "ClusterDiscovery").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Type").SetMaxSize(64) diff --git a/store/sqlstore/command_store.go b/store/sqlstore/command_store.go index acbe149f0d..e1abd43e77 100644 --- a/store/sqlstore/command_store.go +++ b/store/sqlstore/command_store.go @@ -14,18 +14,18 @@ import ( ) type SqlCommandStore struct { - SqlStore + *SqlSupplier commandsQuery sq.SelectBuilder } -func newSqlCommandStore(sqlStore SqlStore) store.CommandStore { - s := &SqlCommandStore{SqlStore: sqlStore} +func newSqlCommandStore(sqlSupplier *SqlSupplier) store.CommandStore { + s := &SqlCommandStore{SqlSupplier: sqlSupplier} s.commandsQuery = s.getQueryBuilder(). Select("*"). From("Commands") - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { tableo := db.AddTableWithName(model.Command{}, "Commands").SetKeys(false, "Id") tableo.ColMap("Id").SetMaxSize(26) tableo.ColMap("Token").SetMaxSize(26) diff --git a/store/sqlstore/command_webhook_store.go b/store/sqlstore/command_webhook_store.go index dc2051e112..7055550baa 100644 --- a/store/sqlstore/command_webhook_store.go +++ b/store/sqlstore/command_webhook_store.go @@ -16,13 +16,13 @@ import ( ) type SqlCommandWebhookStore struct { - SqlStore + *SqlSupplier } -func newSqlCommandWebhookStore(sqlStore SqlStore) store.CommandWebhookStore { - s := &SqlCommandWebhookStore{sqlStore} +func newSqlCommandWebhookStore(sqlSupplier *SqlSupplier) store.CommandWebhookStore { + s := &SqlCommandWebhookStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { tablec := db.AddTableWithName(model.CommandWebhook{}, "CommandWebhooks").SetKeys(false, "Id") tablec.ColMap("Id").SetMaxSize(26) tablec.ColMap("CommandId").SetMaxSize(26) diff --git a/store/sqlstore/compliance_store.go b/store/sqlstore/compliance_store.go index 0e17991ec6..b34777f498 100644 --- a/store/sqlstore/compliance_store.go +++ b/store/sqlstore/compliance_store.go @@ -14,13 +14,13 @@ import ( ) type SqlComplianceStore struct { - SqlStore + *SqlSupplier } -func newSqlComplianceStore(sqlStore SqlStore) store.ComplianceStore { - s := &SqlComplianceStore{sqlStore} +func newSqlComplianceStore(sqlSupplier *SqlSupplier) store.ComplianceStore { + s := &SqlComplianceStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Compliance{}, "Compliances").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("UserId").SetMaxSize(26) diff --git a/store/sqlstore/emoji_store.go b/store/sqlstore/emoji_store.go index 3063086551..36383e6c77 100644 --- a/store/sqlstore/emoji_store.go +++ b/store/sqlstore/emoji_store.go @@ -15,17 +15,17 @@ import ( ) type SqlEmojiStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface } -func newSqlEmojiStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.EmojiStore { +func newSqlEmojiStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.EmojiStore { s := &SqlEmojiStore{ - SqlStore: sqlStore, - metrics: metrics, + SqlSupplier: sqlSupplier, + metrics: metrics, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Emoji{}, "Emoji").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("CreatorId").SetMaxSize(26) diff --git a/store/sqlstore/file_info_store.go b/store/sqlstore/file_info_store.go index c2d1847fc4..d6158768ac 100644 --- a/store/sqlstore/file_info_store.go +++ b/store/sqlstore/file_info_store.go @@ -16,7 +16,7 @@ import ( ) type SqlFileInfoStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface queryFields []string } @@ -24,10 +24,10 @@ type SqlFileInfoStore struct { func (fs SqlFileInfoStore) ClearCaches() { } -func newSqlFileInfoStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.FileInfoStore { +func newSqlFileInfoStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.FileInfoStore { s := &SqlFileInfoStore{ - SqlStore: sqlStore, - metrics: metrics, + SqlSupplier: sqlSupplier, + metrics: metrics, } s.queryFields = []string{ @@ -51,7 +51,7 @@ func newSqlFileInfoStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface "Coalesce(FileInfo.Content, '') AS Content", } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.FileInfo{}, "FileInfo").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("CreatorId").SetMaxSize(26) diff --git a/store/sqlstore/group_store.go b/store/sqlstore/group_store.go index e1dc14ef7a..006b076418 100644 --- a/store/sqlstore/group_store.go +++ b/store/sqlstore/group_store.go @@ -48,12 +48,12 @@ type groupChannelJoin struct { } type SqlGroupStore struct { - SqlStore + *SqlSupplier } -func newSqlGroupStore(sqlStore SqlStore) store.GroupStore { - s := &SqlGroupStore{SqlStore: sqlStore} - for _, db := range sqlStore.GetAllConns() { +func newSqlGroupStore(sqlSupplier *SqlSupplier) store.GroupStore { + s := &SqlGroupStore{SqlSupplier: sqlSupplier} + for _, db := range sqlSupplier.GetAllConns() { groups := db.AddTableWithName(model.Group{}, "UserGroups").SetKeys(false, "Id") groups.ColMap("Id").SetMaxSize(26) groups.ColMap("Name").SetMaxSize(model.GroupNameMaxLength).SetUnique(true) diff --git a/store/sqlstore/job_store.go b/store/sqlstore/job_store.go index 3dd2fcf122..68d16a02bb 100644 --- a/store/sqlstore/job_store.go +++ b/store/sqlstore/job_store.go @@ -17,13 +17,13 @@ import ( ) type SqlJobStore struct { - SqlStore + *SqlSupplier } -func newSqlJobStore(sqlStore SqlStore) store.JobStore { - s := &SqlJobStore{sqlStore} +func newSqlJobStore(sqlSupplier *SqlSupplier) store.JobStore { + s := &SqlJobStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Job{}, "Jobs").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Type").SetMaxSize(32) diff --git a/store/sqlstore/license_store.go b/store/sqlstore/license_store.go index f2f7a13a3e..2b64790a1b 100644 --- a/store/sqlstore/license_store.go +++ b/store/sqlstore/license_store.go @@ -15,13 +15,13 @@ import ( // SqlLicenseStore encapsulates the database writes and reads for // model.LicenseRecord objects. type SqlLicenseStore struct { - SqlStore + *SqlSupplier } -func newSqlLicenseStore(sqlStore SqlStore) store.LicenseStore { - ls := &SqlLicenseStore{sqlStore} +func newSqlLicenseStore(sqlSupplier *SqlSupplier) store.LicenseStore { + ls := &SqlLicenseStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.LicenseRecord{}, "Licenses").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Bytes").SetMaxSize(10000) diff --git a/store/sqlstore/link_metadata_store.go b/store/sqlstore/link_metadata_store.go index 16752265e0..5ba2a41737 100644 --- a/store/sqlstore/link_metadata_store.go +++ b/store/sqlstore/link_metadata_store.go @@ -14,13 +14,13 @@ import ( ) type SqlLinkMetadataStore struct { - SqlStore + *SqlSupplier } -func newSqlLinkMetadataStore(sqlStore SqlStore) store.LinkMetadataStore { - s := &SqlLinkMetadataStore{sqlStore} +func newSqlLinkMetadataStore(sqlSupplier *SqlSupplier) store.LinkMetadataStore { + s := &SqlLinkMetadataStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.LinkMetadata{}, "LinkMetadata").SetKeys(false, "Hash") table.ColMap("URL").SetMaxSize(2048) table.ColMap("Type").SetMaxSize(16) diff --git a/store/sqlstore/oauth_store.go b/store/sqlstore/oauth_store.go index 4f262167ac..6e274ff9de 100644 --- a/store/sqlstore/oauth_store.go +++ b/store/sqlstore/oauth_store.go @@ -15,13 +15,13 @@ import ( ) type SqlOAuthStore struct { - SqlStore + *SqlSupplier } -func newSqlOAuthStore(sqlStore SqlStore) store.OAuthStore { - as := &SqlOAuthStore{sqlStore} +func newSqlOAuthStore(sqlSupplier *SqlSupplier) store.OAuthStore { + as := &SqlOAuthStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.OAuthApp{}, "OAuthApps").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("CreatorId").SetMaxSize(26) diff --git a/store/sqlstore/plugin_store.go b/store/sqlstore/plugin_store.go index b9bef1d7b2..a858535a96 100644 --- a/store/sqlstore/plugin_store.go +++ b/store/sqlstore/plugin_store.go @@ -20,13 +20,13 @@ const ( ) type SqlPluginStore struct { - SqlStore + *SqlSupplier } -func newSqlPluginStore(sqlStore SqlStore) store.PluginStore { - s := &SqlPluginStore{sqlStore} +func newSqlPluginStore(sqlSupplier *SqlSupplier) store.PluginStore { + s := &SqlPluginStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.PluginKeyValue{}, "PluginKeyValueStore").SetKeys(false, "PluginId", "Key") table.ColMap("PluginId").SetMaxSize(190) table.ColMap("Key").SetMaxSize(50) diff --git a/store/sqlstore/post_store.go b/store/sqlstore/post_store.go index 8b790693b8..88410b69d7 100644 --- a/store/sqlstore/post_store.go +++ b/store/sqlstore/post_store.go @@ -24,7 +24,7 @@ import ( ) type SqlPostStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface maxPostSizeOnce sync.Once maxPostSizeCached int @@ -60,14 +60,14 @@ func postToSlice(post *model.Post) []interface{} { } } -func newSqlPostStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.PostStore { +func newSqlPostStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.PostStore { s := &SqlPostStore{ - SqlStore: sqlStore, + SqlSupplier: sqlSupplier, metrics: metrics, maxPostSizeCached: model.POST_MESSAGE_MAX_RUNES_V1, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Post{}, "Posts").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("UserId").SetMaxSize(26) diff --git a/store/sqlstore/preference_store.go b/store/sqlstore/preference_store.go index 6c49050b2b..81c380e02a 100644 --- a/store/sqlstore/preference_store.go +++ b/store/sqlstore/preference_store.go @@ -15,13 +15,13 @@ import ( ) type SqlPreferenceStore struct { - SqlStore + *SqlSupplier } -func newSqlPreferenceStore(sqlStore SqlStore) store.PreferenceStore { - s := &SqlPreferenceStore{sqlStore} +func newSqlPreferenceStore(sqlSupplier *SqlSupplier) store.PreferenceStore { + s := &SqlPreferenceStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Preference{}, "Preferences").SetKeys(false, "UserId", "Category", "Name") table.ColMap("UserId").SetMaxSize(26) table.ColMap("Category").SetMaxSize(32) diff --git a/store/sqlstore/product_notices_store.go b/store/sqlstore/product_notices_store.go index dad92c763c..2965cc90ea 100644 --- a/store/sqlstore/product_notices_store.go +++ b/store/sqlstore/product_notices_store.go @@ -4,22 +4,23 @@ package sqlstore import ( + "time" + sq "github.com/Masterminds/squirrel" "github.com/mattermost/mattermost-server/v5/model" "github.com/mattermost/mattermost-server/v5/store" - "time" "github.com/pkg/errors" ) type SqlProductNoticesStore struct { - SqlStore + *SqlSupplier } -func newSqlProductNoticesStore(sqlStore SqlStore) store.ProductNoticesStore { - s := SqlProductNoticesStore{sqlStore} +func newSqlProductNoticesStore(sqlSupplier *SqlSupplier) store.ProductNoticesStore { + s := SqlProductNoticesStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.ProductNoticeViewState{}, "ProductNoticeViewState").SetKeys(false, "UserId", "NoticeId") table.ColMap("UserId").SetMaxSize(26) table.ColMap("NoticeId").SetMaxSize(26) diff --git a/store/sqlstore/role_store.go b/store/sqlstore/role_store.go index 1ca396fb9b..df0c4bc8c6 100644 --- a/store/sqlstore/role_store.go +++ b/store/sqlstore/role_store.go @@ -17,7 +17,7 @@ import ( ) type SqlRoleStore struct { - SqlStore + *SqlSupplier } type Role struct { @@ -82,10 +82,10 @@ func (role Role) ToModel() *model.Role { } } -func newSqlRoleStore(sqlStore SqlStore) store.RoleStore { - s := &SqlRoleStore{sqlStore} +func newSqlRoleStore(sqlSupplier *SqlSupplier) store.RoleStore { + s := &SqlRoleStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(Role{}, "Roles").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Name").SetMaxSize(64).SetUnique(true) diff --git a/store/sqlstore/scheme_store.go b/store/sqlstore/scheme_store.go index 9aa240f02b..384835dde9 100644 --- a/store/sqlstore/scheme_store.go +++ b/store/sqlstore/scheme_store.go @@ -16,13 +16,13 @@ import ( ) type SqlSchemeStore struct { - SqlStore + *SqlSupplier } -func newSqlSchemeStore(sqlStore SqlStore) store.SchemeStore { - s := &SqlSchemeStore{sqlStore} +func newSqlSchemeStore(sqlSupplier *SqlSupplier) store.SchemeStore { + s := &SqlSchemeStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Scheme{}, "Schemes").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Name").SetMaxSize(model.SCHEME_NAME_MAX_LENGTH).SetUnique(true) @@ -85,7 +85,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr // Fetch the default system scheme roles to populate default permissions. defaultRoleNames := []string{model.TEAM_ADMIN_ROLE_ID, model.TEAM_USER_ROLE_ID, model.TEAM_GUEST_ROLE_ID, model.CHANNEL_ADMIN_ROLE_ID, model.CHANNEL_USER_ROLE_ID, model.CHANNEL_GUEST_ROLE_ID} defaultRoles := make(map[string]*model.Role) - roles, appErr := s.SqlStore.Role().GetByNames(defaultRoleNames) + roles, appErr := s.SqlSupplier.Role().GetByNames(defaultRoleNames) if appErr != nil { return nil, appErr } @@ -121,7 +121,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr SchemeManaged: true, } - savedRole, err := s.SqlStore.Role().(*SqlRoleStore).createRole(teamAdminRole, transaction) + savedRole, err := s.SqlSupplier.Role().(*SqlRoleStore).createRole(teamAdminRole, transaction) if err != nil { return nil, err } @@ -135,7 +135,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr SchemeManaged: true, } - savedRole, err = s.SqlStore.Role().(*SqlRoleStore).createRole(teamUserRole, transaction) + savedRole, err = s.SqlSupplier.Role().(*SqlRoleStore).createRole(teamUserRole, transaction) if err != nil { return nil, err } @@ -149,7 +149,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr SchemeManaged: true, } - savedRole, err = s.SqlStore.Role().(*SqlRoleStore).createRole(teamGuestRole, transaction) + savedRole, err = s.SqlSupplier.Role().(*SqlRoleStore).createRole(teamGuestRole, transaction) if err != nil { return nil, err } @@ -169,7 +169,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr channelAdminRole.Permissions = []string{} } - savedRole, err := s.SqlStore.Role().(*SqlRoleStore).createRole(channelAdminRole, transaction) + savedRole, err := s.SqlSupplier.Role().(*SqlRoleStore).createRole(channelAdminRole, transaction) if err != nil { return nil, err } @@ -187,7 +187,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr channelUserRole.Permissions = filterModerated(channelUserRole.Permissions) } - savedRole, err = s.SqlStore.Role().(*SqlRoleStore).createRole(channelUserRole, transaction) + savedRole, err = s.SqlSupplier.Role().(*SqlRoleStore).createRole(channelUserRole, transaction) if err != nil { return nil, err } @@ -205,7 +205,7 @@ func (s *SqlSchemeStore) createScheme(scheme *model.Scheme, transaction *gorp.Tr channelGuestRole.Permissions = filterModerated(channelGuestRole.Permissions) } - savedRole, err = s.SqlStore.Role().(*SqlRoleStore).createRole(channelGuestRole, transaction) + savedRole, err = s.SqlSupplier.Role().(*SqlRoleStore).createRole(channelGuestRole, transaction) if err != nil { return nil, err } diff --git a/store/sqlstore/session_store.go b/store/sqlstore/session_store.go index d36c999260..4dc5a3f162 100644 --- a/store/sqlstore/session_store.go +++ b/store/sqlstore/session_store.go @@ -21,13 +21,13 @@ const ( ) type SqlSessionStore struct { - SqlStore + *SqlSupplier } -func newSqlSessionStore(sqlStore SqlStore) store.SessionStore { - us := &SqlSessionStore{sqlStore} +func newSqlSessionStore(sqlSupplier *SqlSupplier) store.SessionStore { + us := &SqlSessionStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Session{}, "Sessions").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Token").SetMaxSize(26) diff --git a/store/sqlstore/status_store.go b/store/sqlstore/status_store.go index 62bd750a53..c8d4bdc331 100644 --- a/store/sqlstore/status_store.go +++ b/store/sqlstore/status_store.go @@ -16,13 +16,13 @@ import ( ) type SqlStatusStore struct { - SqlStore + *SqlSupplier } -func newSqlStatusStore(sqlStore SqlStore) store.StatusStore { - s := &SqlStatusStore{sqlStore} +func newSqlStatusStore(sqlSupplier *SqlSupplier) store.StatusStore { + s := &SqlStatusStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Status{}, "Status").SetKeys(false, "UserId") table.ColMap("UserId").SetMaxSize(26) table.ColMap("Status").SetMaxSize(32) diff --git a/store/sqlstore/store.go b/store/sqlstore/store.go index bd24ce38ab..f4e996cebc 100644 --- a/store/sqlstore/store.go +++ b/store/sqlstore/store.go @@ -4,104 +4,6 @@ package sqlstore import ( - sq "github.com/Masterminds/squirrel" _ "github.com/go-sql-driver/mysql" _ "github.com/lib/pq" - "github.com/mattermost/gorp" - "github.com/mattermost/mattermost-server/v5/store" ) - -/*type SqlStore struct { - master *gorp.DbMap - replicas []*gorp.DbMap - searchReplicas []*gorp.DbMap - team TeamStore - channel ChannelStore - post PostStore - user UserStore - audit AuditStore - compliance ComplianceStore - session SessionStore - oauth OAuthStore - system SystemStore - webhook WebhookStore - command CommandStore - preference PreferenceStore - license LicenseStore - token TokenStore - emoji EmojiStore - status StatusStore - fileInfo FileInfoStore - reaction ReactionStore - jobStatus JobStatusStore - SchemaVersion string - rrCounter int64 - srCounter int64 -}*/ - -type SqlStore interface { - DriverName() string - GetCurrentSchemaVersion() string - GetMaster() *gorp.DbMap - GetSearchReplica() *gorp.DbMap - GetReplica() *gorp.DbMap - GetDbVersion() (string, error) - TotalMasterDbConnections() int - TotalReadDbConnections() int - TotalSearchDbConnections() int - MarkSystemRanUnitTests() - DoesTableExist(tablename string) bool - DoesColumnExist(tableName string, columName string) bool - DoesTriggerExist(triggerName string) bool - CreateColumnIfNotExists(tableName string, columnName string, mySqlColType string, postgresColType string, defaultValue string) bool - CreateColumnIfNotExistsNoDefault(tableName string, columnName string, mySqlColType string, postgresColType string) bool - RemoveColumnIfExists(tableName string, columnName string) bool - RemoveTableIfExists(tableName string) bool - RenameColumnIfExists(tableName string, oldColumnName string, newColumnName string, colType string) bool - GetMaxLengthOfColumnIfExists(tableName string, columnName string) string - AlterColumnTypeIfExists(tableName string, columnName string, mySqlColType string, postgresColType string) bool - AlterColumnDefaultIfExists(tableName string, columnName string, mySqlColDefault *string, postgresColDefault *string) bool - AlterPrimaryKey(tableName string, columnNames []string) bool - CreateUniqueIndexIfNotExists(indexName string, tableName string, columnName string) bool - CreateIndexIfNotExists(indexName string, tableName string, columnName string) bool - CreateCompositeIndexIfNotExists(indexName string, tableName string, columnNames []string) bool - CreateUniqueCompositeIndexIfNotExists(indexName string, tableName string, columnNames []string) bool - CreateFullTextIndexIfNotExists(indexName string, tableName string, columnName string) bool - RemoveIndexIfExists(indexName string, tableName string) bool - GetAllConns() []*gorp.DbMap - Close() - LockToMaster() - UnlockFromMaster() - Team() store.TeamStore - Channel() store.ChannelStore - Post() store.PostStore - Thread() store.ThreadStore - User() store.UserStore - Bot() store.BotStore - Audit() store.AuditStore - ClusterDiscovery() store.ClusterDiscoveryStore - Compliance() store.ComplianceStore - Session() store.SessionStore - OAuth() store.OAuthStore - System() store.SystemStore - Webhook() store.WebhookStore - Command() store.CommandStore - CommandWebhook() store.CommandWebhookStore - Preference() store.PreferenceStore - License() store.LicenseStore - Token() store.TokenStore - Emoji() store.EmojiStore - Status() store.StatusStore - FileInfo() store.FileInfoStore - UploadSession() store.UploadSessionStore - Reaction() store.ReactionStore - Job() store.JobStore - Plugin() store.PluginStore - UserAccessToken() store.UserAccessTokenStore - Role() store.RoleStore - Scheme() store.SchemeStore - TermsOfService() store.TermsOfServiceStore - UserTermsOfService() store.UserTermsOfServiceStore - LinkMetadata() store.LinkMetadataStore - getQueryBuilder() sq.StatementBuilderType -} diff --git a/store/sqlstore/supplier_reactions.go b/store/sqlstore/supplier_reactions.go index b31ff1c493..31beb2b4e4 100644 --- a/store/sqlstore/supplier_reactions.go +++ b/store/sqlstore/supplier_reactions.go @@ -13,13 +13,13 @@ import ( ) type SqlReactionStore struct { - SqlStore + *SqlSupplier } -func newSqlReactionStore(sqlStore SqlStore) store.ReactionStore { - s := &SqlReactionStore{sqlStore} +func newSqlReactionStore(sqlSupplier *SqlSupplier) store.ReactionStore { + s := &SqlReactionStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Reaction{}, "Reactions").SetKeys(false, "PostId", "UserId", "EmojiName") table.ColMap("UserId").SetMaxSize(26) table.ColMap("PostId").SetMaxSize(26) diff --git a/store/sqlstore/system_store.go b/store/sqlstore/system_store.go index 4ad1197908..6039278495 100644 --- a/store/sqlstore/system_store.go +++ b/store/sqlstore/system_store.go @@ -18,13 +18,13 @@ import ( ) type SqlSystemStore struct { - SqlStore + *SqlSupplier } -func newSqlSystemStore(sqlStore SqlStore) store.SystemStore { - s := &SqlSystemStore{sqlStore} +func newSqlSystemStore(sqlSupplier *SqlSupplier) store.SystemStore { + s := &SqlSystemStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.System{}, "Systems").SetKeys(false, "Name") table.ColMap("Name").SetMaxSize(64) table.ColMap("Value").SetMaxSize(1024) diff --git a/store/sqlstore/team_store.go b/store/sqlstore/team_store.go index 209f7110d0..0207be538d 100644 --- a/store/sqlstore/team_store.go +++ b/store/sqlstore/team_store.go @@ -23,7 +23,7 @@ const ( ) type SqlTeamStore struct { - SqlStore + *SqlSupplier teamsQuery sq.SelectBuilder } @@ -202,16 +202,16 @@ func (db teamMemberWithSchemeRolesList) ToModel() []*model.TeamMember { return tms } -func newSqlTeamStore(sqlStore SqlStore) store.TeamStore { +func newSqlTeamStore(sqlSupplier *SqlSupplier) store.TeamStore { s := &SqlTeamStore{ - SqlStore: sqlStore, + SqlSupplier: sqlSupplier, } s.teamsQuery = s.getQueryBuilder(). Select("Teams.*"). From("Teams") - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Team{}, "Teams").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("DisplayName").SetMaxSize(64) diff --git a/store/sqlstore/terms_of_service_store.go b/store/sqlstore/terms_of_service_store.go index 49645996e0..05818ed12c 100644 --- a/store/sqlstore/terms_of_service_store.go +++ b/store/sqlstore/terms_of_service_store.go @@ -14,14 +14,14 @@ import ( ) type SqlTermsOfServiceStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface } -func newSqlTermsOfServiceStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.TermsOfServiceStore { - s := SqlTermsOfServiceStore{sqlStore, metrics} +func newSqlTermsOfServiceStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.TermsOfServiceStore { + s := SqlTermsOfServiceStore{sqlSupplier, metrics} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.TermsOfService{}, "TermsOfService").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("UserId").SetMaxSize(26) diff --git a/store/sqlstore/thread_store.go b/store/sqlstore/thread_store.go index c6d63288de..b63caab976 100644 --- a/store/sqlstore/thread_store.go +++ b/store/sqlstore/thread_store.go @@ -16,18 +16,18 @@ import ( ) type SqlThreadStore struct { - SqlStore + *SqlSupplier } func (s *SqlThreadStore) ClearCaches() { } -func newSqlThreadStore(sqlStore SqlStore) store.ThreadStore { +func newSqlThreadStore(sqlSupplier *SqlSupplier) store.ThreadStore { s := &SqlThreadStore{ - SqlStore: sqlStore, + SqlSupplier: sqlSupplier, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { tableThreads := db.AddTableWithName(model.Thread{}, "Threads").SetKeys(false, "PostId") tableThreads.ColMap("PostId").SetMaxSize(26) tableThreads.ColMap("ChannelId").SetMaxSize(26) diff --git a/store/sqlstore/tokens_store.go b/store/sqlstore/tokens_store.go index 267a29de36..964b9ca5d1 100644 --- a/store/sqlstore/tokens_store.go +++ b/store/sqlstore/tokens_store.go @@ -15,13 +15,13 @@ import ( ) type SqlTokenStore struct { - SqlStore + *SqlSupplier } -func newSqlTokenStore(sqlStore SqlStore) store.TokenStore { - s := &SqlTokenStore{sqlStore} +func newSqlTokenStore(sqlSupplier *SqlSupplier) store.TokenStore { + s := &SqlTokenStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.Token{}, "Tokens").SetKeys(false, "Token") table.ColMap("Token").SetMaxSize(64) table.ColMap("Type").SetMaxSize(64) diff --git a/store/sqlstore/upgrade.go b/store/sqlstore/upgrade.go index bc16a2095c..ed443e4aad 100644 --- a/store/sqlstore/upgrade.go +++ b/store/sqlstore/upgrade.go @@ -89,7 +89,7 @@ const ( // upgradeDatabase attempts to migrate the schema to the latest supported version. // The value of model.CurrentVersion is accepted as a parameter for unit testing, but it is not // used to stop migrations at that version. -func upgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error { +func upgradeDatabase(sqlSupplier *SqlSupplier, currentModelVersionString string) error { currentModelVersion, err := semver.Parse(currentModelVersionString) if err != nil { return errors.Wrapf(err, "failed to parse current model version %s", currentModelVersionString) @@ -105,7 +105,7 @@ func upgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error } var currentSchemaVersion *semver.Version - currentSchemaVersionString := sqlStore.GetCurrentSchemaVersion() + currentSchemaVersionString := sqlSupplier.GetCurrentSchemaVersion() if currentSchemaVersionString != "" { currentSchemaVersion, err = semver.New(currentSchemaVersionString) if err != nil { @@ -115,7 +115,7 @@ func upgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error // Assume a fresh database if no schema version has been recorded. if currentSchemaVersion == nil { - if err := sqlStore.System().SaveOrUpdate(&model.System{Name: "Version", Value: currentModelVersion.String()}); err != nil { + if err := sqlSupplier.System().SaveOrUpdate(&model.System{Name: "Version", Value: currentModelVersion.String()}); err != nil { return errors.Wrap(err, "failed to initialize schema version for fresh database") } @@ -138,68 +138,68 @@ func upgradeDatabase(sqlStore SqlStore, currentModelVersionString string) error // Otherwise, apply any necessary migrations. Note that these methods currently invoke // os.Exit instead of returning an error. - upgradeDatabaseToVersion31(sqlStore) - upgradeDatabaseToVersion32(sqlStore) - upgradeDatabaseToVersion33(sqlStore) - upgradeDatabaseToVersion34(sqlStore) - upgradeDatabaseToVersion35(sqlStore) - upgradeDatabaseToVersion36(sqlStore) - upgradeDatabaseToVersion37(sqlStore) - upgradeDatabaseToVersion38(sqlStore) - upgradeDatabaseToVersion39(sqlStore) - upgradeDatabaseToVersion310(sqlStore) - upgradeDatabaseToVersion40(sqlStore) - upgradeDatabaseToVersion41(sqlStore) - upgradeDatabaseToVersion42(sqlStore) - upgradeDatabaseToVersion43(sqlStore) - upgradeDatabaseToVersion44(sqlStore) - upgradeDatabaseToVersion45(sqlStore) - upgradeDatabaseToVersion46(sqlStore) - upgradeDatabaseToVersion47(sqlStore) - upgradeDatabaseToVersion471(sqlStore) - upgradeDatabaseToVersion472(sqlStore) - upgradeDatabaseToVersion48(sqlStore) - upgradeDatabaseToVersion481(sqlStore) - upgradeDatabaseToVersion49(sqlStore) - upgradeDatabaseToVersion410(sqlStore) - upgradeDatabaseToVersion50(sqlStore) - upgradeDatabaseToVersion51(sqlStore) - upgradeDatabaseToVersion52(sqlStore) - upgradeDatabaseToVersion53(sqlStore) - upgradeDatabaseToVersion54(sqlStore) - upgradeDatabaseToVersion55(sqlStore) - upgradeDatabaseToVersion56(sqlStore) - upgradeDatabaseToVersion57(sqlStore) - upgradeDatabaseToVersion58(sqlStore) - upgradeDatabaseToVersion59(sqlStore) - upgradeDatabaseToVersion510(sqlStore) - upgradeDatabaseToVersion511(sqlStore) - upgradeDatabaseToVersion512(sqlStore) - upgradeDatabaseToVersion513(sqlStore) - upgradeDatabaseToVersion514(sqlStore) - upgradeDatabaseToVersion515(sqlStore) - upgradeDatabaseToVersion516(sqlStore) - upgradeDatabaseToVersion517(sqlStore) - upgradeDatabaseToVersion518(sqlStore) - upgradeDatabaseToVersion519(sqlStore) - upgradeDatabaseToVersion520(sqlStore) - upgradeDatabaseToVersion521(sqlStore) - upgradeDatabaseToVersion522(sqlStore) - upgradeDatabaseToVersion523(sqlStore) - upgradeDatabaseToVersion524(sqlStore) - upgradeDatabaseToVersion525(sqlStore) - upgradeDatabaseToVersion526(sqlStore) - upgradeDatabaseToVersion527(sqlStore) - upgradeDatabaseToVersion528(sqlStore) - upgradeDatabaseToVersion5281(sqlStore) - upgradeDatabaseToVersion529(sqlStore) - upgradeDatabaseToVersion530(sqlStore) + upgradeDatabaseToVersion31(sqlSupplier) + upgradeDatabaseToVersion32(sqlSupplier) + upgradeDatabaseToVersion33(sqlSupplier) + upgradeDatabaseToVersion34(sqlSupplier) + upgradeDatabaseToVersion35(sqlSupplier) + upgradeDatabaseToVersion36(sqlSupplier) + upgradeDatabaseToVersion37(sqlSupplier) + upgradeDatabaseToVersion38(sqlSupplier) + upgradeDatabaseToVersion39(sqlSupplier) + upgradeDatabaseToVersion310(sqlSupplier) + upgradeDatabaseToVersion40(sqlSupplier) + upgradeDatabaseToVersion41(sqlSupplier) + upgradeDatabaseToVersion42(sqlSupplier) + upgradeDatabaseToVersion43(sqlSupplier) + upgradeDatabaseToVersion44(sqlSupplier) + upgradeDatabaseToVersion45(sqlSupplier) + upgradeDatabaseToVersion46(sqlSupplier) + upgradeDatabaseToVersion47(sqlSupplier) + upgradeDatabaseToVersion471(sqlSupplier) + upgradeDatabaseToVersion472(sqlSupplier) + upgradeDatabaseToVersion48(sqlSupplier) + upgradeDatabaseToVersion481(sqlSupplier) + upgradeDatabaseToVersion49(sqlSupplier) + upgradeDatabaseToVersion410(sqlSupplier) + upgradeDatabaseToVersion50(sqlSupplier) + upgradeDatabaseToVersion51(sqlSupplier) + upgradeDatabaseToVersion52(sqlSupplier) + upgradeDatabaseToVersion53(sqlSupplier) + upgradeDatabaseToVersion54(sqlSupplier) + upgradeDatabaseToVersion55(sqlSupplier) + upgradeDatabaseToVersion56(sqlSupplier) + upgradeDatabaseToVersion57(sqlSupplier) + upgradeDatabaseToVersion58(sqlSupplier) + upgradeDatabaseToVersion59(sqlSupplier) + upgradeDatabaseToVersion510(sqlSupplier) + upgradeDatabaseToVersion511(sqlSupplier) + upgradeDatabaseToVersion512(sqlSupplier) + upgradeDatabaseToVersion513(sqlSupplier) + upgradeDatabaseToVersion514(sqlSupplier) + upgradeDatabaseToVersion515(sqlSupplier) + upgradeDatabaseToVersion516(sqlSupplier) + upgradeDatabaseToVersion517(sqlSupplier) + upgradeDatabaseToVersion518(sqlSupplier) + upgradeDatabaseToVersion519(sqlSupplier) + upgradeDatabaseToVersion520(sqlSupplier) + upgradeDatabaseToVersion521(sqlSupplier) + upgradeDatabaseToVersion522(sqlSupplier) + upgradeDatabaseToVersion523(sqlSupplier) + upgradeDatabaseToVersion524(sqlSupplier) + upgradeDatabaseToVersion525(sqlSupplier) + upgradeDatabaseToVersion526(sqlSupplier) + upgradeDatabaseToVersion527(sqlSupplier) + upgradeDatabaseToVersion528(sqlSupplier) + upgradeDatabaseToVersion5281(sqlSupplier) + upgradeDatabaseToVersion529(sqlSupplier) + upgradeDatabaseToVersion530(sqlSupplier) return nil } -func saveSchemaVersion(sqlStore SqlStore, version string) { - if err := sqlStore.System().SaveOrUpdate(&model.System{Name: "Version", Value: version}); err != nil { +func saveSchemaVersion(sqlSupplier *SqlSupplier, version string) { + if err := sqlSupplier.System().SaveOrUpdate(&model.System{Name: "Version", Value: version}); err != nil { mlog.Critical(err.Error()) time.Sleep(time.Second) os.Exit(EXIT_VERSION_SAVE) @@ -208,8 +208,8 @@ func saveSchemaVersion(sqlStore SqlStore, version string) { mlog.Warn("The database schema version has been upgraded", mlog.String("version", version)) } -func shouldPerformUpgrade(sqlStore SqlStore, currentSchemaVersion string, expectedSchemaVersion string) bool { - if sqlStore.GetCurrentSchemaVersion() == currentSchemaVersion { +func shouldPerformUpgrade(sqlSupplier *SqlSupplier, currentSchemaVersion string, expectedSchemaVersion string) bool { + if sqlSupplier.GetCurrentSchemaVersion() == currentSchemaVersion { mlog.Warn("Attempting to upgrade the database schema version", mlog.String("current_version", currentSchemaVersion), mlog.String("new_version", expectedSchemaVersion)) return true @@ -218,18 +218,18 @@ func shouldPerformUpgrade(sqlStore SqlStore, currentSchemaVersion string, expect return false } -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 upgradeDatabaseToVersion31(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_0_0, VERSION_3_1_0) { + sqlSupplier.CreateColumnIfNotExists("OutgoingWebhooks", "ContentType", "varchar(128)", "varchar(128)", "") + saveSchemaVersion(sqlSupplier, VERSION_3_1_0) } } -func upgradeDatabaseToVersion32(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_1_0, VERSION_3_2_0) { - sqlStore.CreateColumnIfNotExists("TeamMembers", "DeleteAt", "bigint(20)", "bigint", "0") +func upgradeDatabaseToVersion32(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_1_0, VERSION_3_2_0) { + sqlSupplier.CreateColumnIfNotExists("TeamMembers", "DeleteAt", "bigint(20)", "bigint", "0") - saveSchemaVersion(sqlStore, VERSION_3_2_0) + saveSchemaVersion(sqlSupplier, VERSION_3_2_0) } } @@ -239,27 +239,27 @@ func themeMigrationFailed(err error) { os.Exit(EXIT_THEME_MIGRATION) } -func upgradeDatabaseToVersion33(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_2_0, VERSION_3_3_0) { - if sqlStore.DoesColumnExist("Users", "ThemeProps") { +func upgradeDatabaseToVersion33(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_2_0, VERSION_3_3_0) { + if sqlSupplier.DoesColumnExist("Users", "ThemeProps") { params := map[string]interface{}{ "Category": model.PREFERENCE_CATEGORY_THEME, "Name": "", } - transaction, err := sqlStore.GetMaster().Begin() + transaction, err := sqlSupplier.GetMaster().Begin() 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 sqlSupplier.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 { + } else if sqlSupplier.DriverName() == model.DATABASE_DRIVER_MYSQL { if _, err := transaction.Exec("ALTER TABLE Preferences MODIFY Value text"); err != nil { themeMigrationFailed(err) return @@ -293,242 +293,242 @@ func upgradeDatabaseToVersion33(sqlStore SqlStore) { // rename solarized_* code themes to solarized-* to match client changes in 3.0 var data model.Preferences - if _, err := sqlStore.GetMaster().Select(&data, "SELECT * FROM Preferences WHERE Category = '"+model.PREFERENCE_CATEGORY_THEME+"' AND Value LIKE '%solarized_%'"); err == nil { + if _, err := sqlSupplier.GetMaster().Select(&data, "SELECT * FROM Preferences WHERE Category = '"+model.PREFERENCE_CATEGORY_THEME+"' AND Value LIKE '%solarized_%'"); err == nil { for i := range data { data[i].Value = strings.Replace(data[i].Value, "solarized_", "solarized-", -1) } - sqlStore.Preference().Save(&data) + sqlSupplier.Preference().Save(&data) } } - sqlStore.CreateColumnIfNotExists("OAuthApps", "IsTrusted", "tinyint(1)", "boolean", "0") - sqlStore.CreateColumnIfNotExists("OAuthApps", "IconURL", "varchar(512)", "varchar(512)", "") - sqlStore.CreateColumnIfNotExists("OAuthAccessData", "ClientId", "varchar(26)", "varchar(26)", "") - sqlStore.CreateColumnIfNotExists("OAuthAccessData", "UserId", "varchar(26)", "varchar(26)", "") - sqlStore.CreateColumnIfNotExists("OAuthAccessData", "ExpiresAt", "bigint", "bigint", "0") + sqlSupplier.CreateColumnIfNotExists("OAuthApps", "IsTrusted", "tinyint(1)", "boolean", "0") + sqlSupplier.CreateColumnIfNotExists("OAuthApps", "IconURL", "varchar(512)", "varchar(512)", "") + sqlSupplier.CreateColumnIfNotExists("OAuthAccessData", "ClientId", "varchar(26)", "varchar(26)", "") + sqlSupplier.CreateColumnIfNotExists("OAuthAccessData", "UserId", "varchar(26)", "varchar(26)", "") + sqlSupplier.CreateColumnIfNotExists("OAuthAccessData", "ExpiresAt", "bigint", "bigint", "0") - if sqlStore.DoesColumnExist("OAuthAccessData", "AuthCode") { - sqlStore.RemoveIndexIfExists("idx_oauthaccessdata_auth_code", "OAuthAccessData") - sqlStore.RemoveColumnIfExists("OAuthAccessData", "AuthCode") + if sqlSupplier.DoesColumnExist("OAuthAccessData", "AuthCode") { + sqlSupplier.RemoveIndexIfExists("idx_oauthaccessdata_auth_code", "OAuthAccessData") + sqlSupplier.RemoveColumnIfExists("OAuthAccessData", "AuthCode") } - sqlStore.RemoveColumnIfExists("Users", "LastActivityAt") - sqlStore.RemoveColumnIfExists("Users", "LastPingAt") + sqlSupplier.RemoveColumnIfExists("Users", "LastActivityAt") + sqlSupplier.RemoveColumnIfExists("Users", "LastPingAt") - sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "TriggerWhen", "tinyint", "integer", "0") + sqlSupplier.CreateColumnIfNotExists("OutgoingWebhooks", "TriggerWhen", "tinyint", "integer", "0") - saveSchemaVersion(sqlStore, VERSION_3_3_0) + saveSchemaVersion(sqlSupplier, VERSION_3_3_0) } } -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)", "") +func upgradeDatabaseToVersion34(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_3_0, VERSION_3_4_0) { + sqlSupplier.CreateColumnIfNotExists("Status", "Manual", "BOOLEAN", "BOOLEAN", "0") + sqlSupplier.CreateColumnIfNotExists("Status", "ActiveChannel", "varchar(26)", "varchar(26)", "") - saveSchemaVersion(sqlStore, VERSION_3_4_0) + saveSchemaVersion(sqlSupplier, VERSION_3_4_0) } } -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'") - sqlStore.GetMaster().Exec("UPDATE TeamMembers SET Roles = 'team_user' WHERE Roles = ''") - sqlStore.GetMaster().Exec("UPDATE TeamMembers SET Roles = 'team_user team_admin' WHERE Roles = 'admin'") - sqlStore.GetMaster().Exec("UPDATE ChannelMembers SET Roles = 'channel_user' WHERE Roles = ''") - sqlStore.GetMaster().Exec("UPDATE ChannelMembers SET Roles = 'channel_user channel_admin' WHERE Roles = 'admin'") +func upgradeDatabaseToVersion35(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_4_0, VERSION_3_5_0) { + sqlSupplier.GetMaster().Exec("UPDATE Users SET Roles = 'system_user' WHERE Roles = ''") + sqlSupplier.GetMaster().Exec("UPDATE Users SET Roles = 'system_user system_admin' WHERE Roles = 'system_admin'") + sqlSupplier.GetMaster().Exec("UPDATE TeamMembers SET Roles = 'team_user' WHERE Roles = ''") + sqlSupplier.GetMaster().Exec("UPDATE TeamMembers SET Roles = 'team_user team_admin' WHERE Roles = 'admin'") + sqlSupplier.GetMaster().Exec("UPDATE ChannelMembers SET Roles = 'channel_user' WHERE Roles = ''") + sqlSupplier.GetMaster().Exec("UPDATE ChannelMembers SET Roles = 'channel_user channel_admin' WHERE Roles = 'admin'") // The rest of the migration from Filenames -> FileIds is done lazily in api.GetFileInfosForPost - sqlStore.CreateColumnIfNotExists("Posts", "FileIds", "varchar(150)", "varchar(150)", "[]") + sqlSupplier.CreateColumnIfNotExists("Posts", "FileIds", "varchar(150)", "varchar(150)", "[]") // Increase maximum length of the Channel table Purpose column. - if sqlStore.GetMaxLengthOfColumnIfExists("Channels", "Purpose") != "250" { - sqlStore.AlterColumnTypeIfExists("Channels", "Purpose", "varchar(250)", "varchar(250)") + if sqlSupplier.GetMaxLengthOfColumnIfExists("Channels", "Purpose") != "250" { + sqlSupplier.AlterColumnTypeIfExists("Channels", "Purpose", "varchar(250)", "varchar(250)") } - sqlStore.Session().RemoveAllSessions() + sqlSupplier.Session().RemoveAllSessions() - saveSchemaVersion(sqlStore, VERSION_3_5_0) + saveSchemaVersion(sqlSupplier, VERSION_3_5_0) } } -func upgradeDatabaseToVersion36(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_5_0, VERSION_3_6_0) { - sqlStore.CreateColumnIfNotExists("Posts", "HasReactions", "tinyint", "boolean", "0") +func upgradeDatabaseToVersion36(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_5_0, VERSION_3_6_0) { + sqlSupplier.CreateColumnIfNotExists("Posts", "HasReactions", "tinyint", "boolean", "0") // Create Team Description column - sqlStore.CreateColumnIfNotExists("Teams", "Description", "varchar(255)", "varchar(255)", "") + sqlSupplier.CreateColumnIfNotExists("Teams", "Description", "varchar(255)", "varchar(255)", "") // Add a Position column to users. - sqlStore.CreateColumnIfNotExists("Users", "Position", "varchar(64)", "varchar(64)", "") + sqlSupplier.CreateColumnIfNotExists("Users", "Position", "varchar(64)", "varchar(64)", "") // Remove ActiveChannel column from Status - sqlStore.RemoveColumnIfExists("Status", "ActiveChannel") + sqlSupplier.RemoveColumnIfExists("Status", "ActiveChannel") - saveSchemaVersion(sqlStore, VERSION_3_6_0) + saveSchemaVersion(sqlSupplier, VERSION_3_6_0) } } -func upgradeDatabaseToVersion37(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_6_0, VERSION_3_7_0) { +func upgradeDatabaseToVersion37(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_6_0, VERSION_3_7_0) { // Add EditAt column to Posts - sqlStore.CreateColumnIfNotExists("Posts", "EditAt", " bigint", " bigint", "0") + sqlSupplier.CreateColumnIfNotExists("Posts", "EditAt", " bigint", " bigint", "0") - saveSchemaVersion(sqlStore, VERSION_3_7_0) + saveSchemaVersion(sqlSupplier, VERSION_3_7_0) } } -func upgradeDatabaseToVersion38(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_7_0, VERSION_3_8_0) { +func upgradeDatabaseToVersion38(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_7_0, VERSION_3_8_0) { // Add the IsPinned column to posts. - sqlStore.CreateColumnIfNotExists("Posts", "IsPinned", "boolean", "boolean", "0") + sqlSupplier.CreateColumnIfNotExists("Posts", "IsPinned", "boolean", "boolean", "0") - saveSchemaVersion(sqlStore, VERSION_3_8_0) + saveSchemaVersion(sqlSupplier, VERSION_3_8_0) } } -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") +func upgradeDatabaseToVersion39(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_8_0, VERSION_3_9_0) { + sqlSupplier.CreateColumnIfNotExists("OAuthAccessData", "Scope", "varchar(128)", "varchar(128)", model.DEFAULT_SCOPE) + sqlSupplier.RemoveTableIfExists("PasswordRecovery") - saveSchemaVersion(sqlStore, VERSION_3_9_0) + saveSchemaVersion(sqlSupplier, VERSION_3_9_0) } } -func upgradeDatabaseToVersion310(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_9_0, VERSION_3_10_0) { - saveSchemaVersion(sqlStore, VERSION_3_10_0) +func upgradeDatabaseToVersion310(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_9_0, VERSION_3_10_0) { + saveSchemaVersion(sqlSupplier, VERSION_3_10_0) } } -func upgradeDatabaseToVersion40(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_3_10_0, VERSION_4_0_0) { - saveSchemaVersion(sqlStore, VERSION_4_0_0) +func upgradeDatabaseToVersion40(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_3_10_0, VERSION_4_0_0) { + saveSchemaVersion(sqlSupplier, VERSION_4_0_0) } } -func upgradeDatabaseToVersion41(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_0_0, VERSION_4_1_0) { +func upgradeDatabaseToVersion41(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_0_0, VERSION_4_1_0) { // Increase maximum length of the Users table Roles column. - if sqlStore.GetMaxLengthOfColumnIfExists("Users", "Roles") != "256" { - sqlStore.AlterColumnTypeIfExists("Users", "Roles", "varchar(256)", "varchar(256)") + if sqlSupplier.GetMaxLengthOfColumnIfExists("Users", "Roles") != "256" { + sqlSupplier.AlterColumnTypeIfExists("Users", "Roles", "varchar(256)", "varchar(256)") } - sqlStore.RemoveTableIfExists("JobStatuses") + sqlSupplier.RemoveTableIfExists("JobStatuses") - saveSchemaVersion(sqlStore, VERSION_4_1_0) + saveSchemaVersion(sqlSupplier, VERSION_4_1_0) } } -func upgradeDatabaseToVersion42(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_1_0, VERSION_4_2_0) { - saveSchemaVersion(sqlStore, VERSION_4_2_0) +func upgradeDatabaseToVersion42(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_1_0, VERSION_4_2_0) { + saveSchemaVersion(sqlSupplier, VERSION_4_2_0) } } -func upgradeDatabaseToVersion43(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_2_0, VERSION_4_3_0) { - saveSchemaVersion(sqlStore, VERSION_4_3_0) +func upgradeDatabaseToVersion43(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_2_0, VERSION_4_3_0) { + saveSchemaVersion(sqlSupplier, VERSION_4_3_0) } } -func upgradeDatabaseToVersion44(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_3_0, VERSION_4_4_0) { +func upgradeDatabaseToVersion44(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_3_0, VERSION_4_4_0) { // Add the IsActive column to UserAccessToken. - sqlStore.CreateColumnIfNotExists("UserAccessTokens", "IsActive", "boolean", "boolean", "1") + sqlSupplier.CreateColumnIfNotExists("UserAccessTokens", "IsActive", "boolean", "boolean", "1") - saveSchemaVersion(sqlStore, VERSION_4_4_0) + saveSchemaVersion(sqlSupplier, VERSION_4_4_0) } } -func upgradeDatabaseToVersion45(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_4_0, VERSION_4_5_0) { - saveSchemaVersion(sqlStore, VERSION_4_5_0) +func upgradeDatabaseToVersion45(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_4_0, VERSION_4_5_0) { + saveSchemaVersion(sqlSupplier, VERSION_4_5_0) } } -func upgradeDatabaseToVersion46(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_5_0, VERSION_4_6_0) { - sqlStore.CreateColumnIfNotExists("IncomingWebhooks", "Username", "varchar(64)", "varchar(64)", "") - sqlStore.CreateColumnIfNotExists("IncomingWebhooks", "IconURL", "varchar(1024)", "varchar(1024)", "") - saveSchemaVersion(sqlStore, VERSION_4_6_0) +func upgradeDatabaseToVersion46(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_5_0, VERSION_4_6_0) { + sqlSupplier.CreateColumnIfNotExists("IncomingWebhooks", "Username", "varchar(64)", "varchar(64)", "") + sqlSupplier.CreateColumnIfNotExists("IncomingWebhooks", "IconURL", "varchar(1024)", "varchar(1024)", "") + saveSchemaVersion(sqlSupplier, VERSION_4_6_0) } } -func upgradeDatabaseToVersion47(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_6_0, VERSION_4_7_0) { - sqlStore.AlterColumnTypeIfExists("Users", "Position", "varchar(128)", "varchar(128)") - sqlStore.AlterColumnTypeIfExists("OAuthAuthData", "State", "varchar(1024)", "varchar(1024)") - sqlStore.RemoveColumnIfExists("ChannelMemberHistory", "Email") - sqlStore.RemoveColumnIfExists("ChannelMemberHistory", "Username") - saveSchemaVersion(sqlStore, VERSION_4_7_0) +func upgradeDatabaseToVersion47(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_6_0, VERSION_4_7_0) { + sqlSupplier.AlterColumnTypeIfExists("Users", "Position", "varchar(128)", "varchar(128)") + sqlSupplier.AlterColumnTypeIfExists("OAuthAuthData", "State", "varchar(1024)", "varchar(1024)") + sqlSupplier.RemoveColumnIfExists("ChannelMemberHistory", "Email") + sqlSupplier.RemoveColumnIfExists("ChannelMemberHistory", "Username") + saveSchemaVersion(sqlSupplier, VERSION_4_7_0) } } -func upgradeDatabaseToVersion471(sqlStore SqlStore) { +func upgradeDatabaseToVersion471(sqlSupplier *SqlSupplier) { // If any new instances started with 4.7, they would have the bad Email column on the // ChannelMemberHistory table. So for those cases we need to do an upgrade between // 4.7.0 and 4.7.1 - if shouldPerformUpgrade(sqlStore, VERSION_4_7_0, VERSION_4_7_1) { - sqlStore.RemoveColumnIfExists("ChannelMemberHistory", "Email") - saveSchemaVersion(sqlStore, VERSION_4_7_1) + if shouldPerformUpgrade(sqlSupplier, VERSION_4_7_0, VERSION_4_7_1) { + sqlSupplier.RemoveColumnIfExists("ChannelMemberHistory", "Email") + saveSchemaVersion(sqlSupplier, VERSION_4_7_1) } } -func upgradeDatabaseToVersion472(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_7_1, VERSION_4_7_2) { - sqlStore.RemoveIndexIfExists("idx_channels_displayname", "Channels") - saveSchemaVersion(sqlStore, VERSION_4_7_2) +func upgradeDatabaseToVersion472(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_7_1, VERSION_4_7_2) { + sqlSupplier.RemoveIndexIfExists("idx_channels_displayname", "Channels") + saveSchemaVersion(sqlSupplier, VERSION_4_7_2) } } -func upgradeDatabaseToVersion48(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_7_2, VERSION_4_8_0) { - saveSchemaVersion(sqlStore, VERSION_4_8_0) +func upgradeDatabaseToVersion48(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_7_2, VERSION_4_8_0) { + saveSchemaVersion(sqlSupplier, VERSION_4_8_0) } } -func upgradeDatabaseToVersion481(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_8_0, VERSION_4_8_1) { - sqlStore.RemoveIndexIfExists("idx_channels_displayname", "Channels") - saveSchemaVersion(sqlStore, VERSION_4_8_1) +func upgradeDatabaseToVersion481(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_8_0, VERSION_4_8_1) { + sqlSupplier.RemoveIndexIfExists("idx_channels_displayname", "Channels") + saveSchemaVersion(sqlSupplier, VERSION_4_8_1) } } -func upgradeDatabaseToVersion49(sqlStore SqlStore) { +func upgradeDatabaseToVersion49(sqlSupplier *SqlSupplier) { // This version of Mattermost includes an App-Layer migration which migrates from hard-coded roles configured by // a number of parameters in `config.json` to a `Roles` table in the database. The migration code can be seen // in the file `app/app.go` in the function `DoAdvancedPermissionsMigration()`. - if shouldPerformUpgrade(sqlStore, VERSION_4_8_1, VERSION_4_9_0) { - sqlStore.CreateColumnIfNotExists("Teams", "LastTeamIconUpdate", "bigint", "bigint", "0") + if shouldPerformUpgrade(sqlSupplier, VERSION_4_8_1, VERSION_4_9_0) { + sqlSupplier.CreateColumnIfNotExists("Teams", "LastTeamIconUpdate", "bigint", "bigint", "0") defaultTimezone := timezones.DefaultUserTimezone() defaultTimezoneValue, err := json.Marshal(defaultTimezone) if err != nil { mlog.Critical(err.Error()) } - sqlStore.CreateColumnIfNotExists("Users", "Timezone", "varchar(256)", "varchar(256)", string(defaultTimezoneValue)) - sqlStore.RemoveIndexIfExists("idx_channels_displayname", "Channels") - saveSchemaVersion(sqlStore, VERSION_4_9_0) + sqlSupplier.CreateColumnIfNotExists("Users", "Timezone", "varchar(256)", "varchar(256)", string(defaultTimezoneValue)) + sqlSupplier.RemoveIndexIfExists("idx_channels_displayname", "Channels") + saveSchemaVersion(sqlSupplier, VERSION_4_9_0) } } -func upgradeDatabaseToVersion410(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_4_9_0, VERSION_4_10_0) { +func upgradeDatabaseToVersion410(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_9_0, VERSION_4_10_0) { - sqlStore.RemoveIndexIfExists("Name_2", "Channels") - sqlStore.RemoveIndexIfExists("Name_2", "Emoji") - sqlStore.RemoveIndexIfExists("ClientId_2", "OAuthAccessData") + sqlSupplier.RemoveIndexIfExists("Name_2", "Channels") + sqlSupplier.RemoveIndexIfExists("Name_2", "Emoji") + sqlSupplier.RemoveIndexIfExists("ClientId_2", "OAuthAccessData") - saveSchemaVersion(sqlStore, VERSION_4_10_0) - sqlStore.GetMaster().Exec("UPDATE Users SET AuthData=LOWER(AuthData) WHERE AuthService = 'saml'") + saveSchemaVersion(sqlSupplier, VERSION_4_10_0) + sqlSupplier.GetMaster().Exec("UPDATE Users SET AuthData=LOWER(AuthData) WHERE AuthService = 'saml'") } } -func upgradeDatabaseToVersion50(sqlStore SqlStore) { +func upgradeDatabaseToVersion50(sqlSupplier *SqlSupplier) { // This version of Mattermost includes an App-Layer migration which migrates from hard-coded emojis configured // in `config.json` to a `Permission` in the database. The migration code can be seen // in the file `app/app.go` in the function `DoEmojisPermissionsMigration()`. @@ -546,329 +546,329 @@ func upgradeDatabaseToVersion50(sqlStore SqlStore) { // UPDATE ChannelMembers SET Roles = CONCAT(Roles, ' channel_admin'), SchemeAdmin = NULL where SchemeAdmin = 1; // DELETE from Systems WHERE Name = 'migration_advanced_permissions_phase_2'; - if shouldPerformUpgrade(sqlStore, VERSION_4_10_0, VERSION_5_0_0) { + if shouldPerformUpgrade(sqlSupplier, VERSION_4_10_0, VERSION_5_0_0) { - sqlStore.CreateColumnIfNotExistsNoDefault("Teams", "SchemeId", "varchar(26)", "varchar(26)") - sqlStore.CreateColumnIfNotExistsNoDefault("Channels", "SchemeId", "varchar(26)", "varchar(26)") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Teams", "SchemeId", "varchar(26)", "varchar(26)") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Channels", "SchemeId", "varchar(26)", "varchar(26)") - sqlStore.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeUser", "boolean", "boolean") - sqlStore.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeAdmin", "boolean", "boolean") - sqlStore.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeUser", "boolean", "boolean") - sqlStore.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeAdmin", "boolean", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeUser", "boolean", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeAdmin", "boolean", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeUser", "boolean", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeAdmin", "boolean", "boolean") - sqlStore.CreateColumnIfNotExists("Roles", "BuiltIn", "boolean", "boolean", "0") - sqlStore.GetMaster().Exec("UPDATE Roles SET BuiltIn=true") - sqlStore.GetMaster().Exec("UPDATE Roles SET SchemeManaged=false WHERE Name NOT IN ('system_user', 'system_admin', 'team_user', 'team_admin', 'channel_user', 'channel_admin')") - sqlStore.CreateColumnIfNotExists("IncomingWebhooks", "ChannelLocked", "boolean", "boolean", "0") + sqlSupplier.CreateColumnIfNotExists("Roles", "BuiltIn", "boolean", "boolean", "0") + sqlSupplier.GetMaster().Exec("UPDATE Roles SET BuiltIn=true") + sqlSupplier.GetMaster().Exec("UPDATE Roles SET SchemeManaged=false WHERE Name NOT IN ('system_user', 'system_admin', 'team_user', 'team_admin', 'channel_user', 'channel_admin')") + sqlSupplier.CreateColumnIfNotExists("IncomingWebhooks", "ChannelLocked", "boolean", "boolean", "0") - sqlStore.RemoveIndexIfExists("idx_channels_txt", "Channels") + sqlSupplier.RemoveIndexIfExists("idx_channels_txt", "Channels") - saveSchemaVersion(sqlStore, VERSION_5_0_0) + saveSchemaVersion(sqlSupplier, VERSION_5_0_0) } } -func upgradeDatabaseToVersion51(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_0_0, VERSION_5_1_0) { - saveSchemaVersion(sqlStore, VERSION_5_1_0) +func upgradeDatabaseToVersion51(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_0_0, VERSION_5_1_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_1_0) } } -func upgradeDatabaseToVersion52(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_1_0, VERSION_5_2_0) { - sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "Username", "varchar(64)", "varchar(64)", "") - sqlStore.CreateColumnIfNotExists("OutgoingWebhooks", "IconURL", "varchar(1024)", "varchar(1024)", "") - saveSchemaVersion(sqlStore, VERSION_5_2_0) +func upgradeDatabaseToVersion52(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_1_0, VERSION_5_2_0) { + sqlSupplier.CreateColumnIfNotExists("OutgoingWebhooks", "Username", "varchar(64)", "varchar(64)", "") + sqlSupplier.CreateColumnIfNotExists("OutgoingWebhooks", "IconURL", "varchar(1024)", "varchar(1024)", "") + saveSchemaVersion(sqlSupplier, VERSION_5_2_0) } } -func upgradeDatabaseToVersion53(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_2_0, VERSION_5_3_0) { - saveSchemaVersion(sqlStore, VERSION_5_3_0) +func upgradeDatabaseToVersion53(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_2_0, VERSION_5_3_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_3_0) } } -func upgradeDatabaseToVersion54(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_3_0, VERSION_5_4_0) { - sqlStore.AlterColumnTypeIfExists("OutgoingWebhooks", "Description", "varchar(500)", "varchar(500)") - sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "Description", "varchar(500)", "varchar(500)") - if err := sqlStore.Channel().MigratePublicChannels(); err != nil { +func upgradeDatabaseToVersion54(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_3_0, VERSION_5_4_0) { + sqlSupplier.AlterColumnTypeIfExists("OutgoingWebhooks", "Description", "varchar(500)", "varchar(500)") + sqlSupplier.AlterColumnTypeIfExists("IncomingWebhooks", "Description", "varchar(500)", "varchar(500)") + if err := sqlSupplier.Channel().MigratePublicChannels(); err != nil { mlog.Critical("Failed to migrate PublicChannels table", mlog.Err(err)) time.Sleep(time.Second) os.Exit(EXIT_GENERIC_FAILURE) } - saveSchemaVersion(sqlStore, VERSION_5_4_0) + saveSchemaVersion(sqlSupplier, VERSION_5_4_0) } } -func upgradeDatabaseToVersion55(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_4_0, VERSION_5_5_0) { - saveSchemaVersion(sqlStore, VERSION_5_5_0) +func upgradeDatabaseToVersion55(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_4_0, VERSION_5_5_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_5_0) } } -func upgradeDatabaseToVersion56(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_5_0, VERSION_5_6_0) { - sqlStore.CreateColumnIfNotExists("PluginKeyValueStore", "ExpireAt", "bigint(20)", "bigint", "0") +func upgradeDatabaseToVersion56(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_5_0, VERSION_5_6_0) { + sqlSupplier.CreateColumnIfNotExists("PluginKeyValueStore", "ExpireAt", "bigint(20)", "bigint", "0") // migrating user's accepted terms of service data into the new table - sqlStore.GetMaster().Exec("INSERT INTO UserTermsOfService SELECT Id, AcceptedTermsOfServiceId as TermsOfServiceId, :CreateAt FROM Users WHERE AcceptedTermsOfServiceId != \"\" AND AcceptedTermsOfServiceId IS NOT NULL", map[string]interface{}{"CreateAt": model.GetMillis()}) + sqlSupplier.GetMaster().Exec("INSERT INTO UserTermsOfService SELECT Id, AcceptedTermsOfServiceId as TermsOfServiceId, :CreateAt FROM Users WHERE AcceptedTermsOfServiceId != \"\" AND AcceptedTermsOfServiceId IS NOT NULL", map[string]interface{}{"CreateAt": model.GetMillis()}) - if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES { - sqlStore.RemoveIndexIfExists("idx_users_email_lower", "lower(Email)") - sqlStore.RemoveIndexIfExists("idx_users_username_lower", "lower(Username)") - sqlStore.RemoveIndexIfExists("idx_users_nickname_lower", "lower(Nickname)") - sqlStore.RemoveIndexIfExists("idx_users_firstname_lower", "lower(FirstName)") - sqlStore.RemoveIndexIfExists("idx_users_lastname_lower", "lower(LastName)") + if sqlSupplier.DriverName() == model.DATABASE_DRIVER_POSTGRES { + sqlSupplier.RemoveIndexIfExists("idx_users_email_lower", "lower(Email)") + sqlSupplier.RemoveIndexIfExists("idx_users_username_lower", "lower(Username)") + sqlSupplier.RemoveIndexIfExists("idx_users_nickname_lower", "lower(Nickname)") + sqlSupplier.RemoveIndexIfExists("idx_users_firstname_lower", "lower(FirstName)") + sqlSupplier.RemoveIndexIfExists("idx_users_lastname_lower", "lower(LastName)") } - saveSchemaVersion(sqlStore, VERSION_5_6_0) + saveSchemaVersion(sqlSupplier, VERSION_5_6_0) } } -func upgradeDatabaseToVersion57(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_6_0, VERSION_5_7_0) { - saveSchemaVersion(sqlStore, VERSION_5_7_0) +func upgradeDatabaseToVersion57(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_6_0, VERSION_5_7_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_7_0) } } -func upgradeDatabaseToVersion58(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_7_0, VERSION_5_8_0) { +func upgradeDatabaseToVersion58(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_7_0, VERSION_5_8_0) { // idx_channels_txt was removed in `upgradeDatabaseToVersion50`, but merged as part of // v5.1, so the migration wouldn't apply to anyone upgrading from v5.0. Remove it again to // bring the upgraded (from v5.0) and fresh install schemas back in sync. - sqlStore.RemoveIndexIfExists("idx_channels_txt", "Channels") + sqlSupplier.RemoveIndexIfExists("idx_channels_txt", "Channels") // Fix column types and defaults where gorp converged on a different schema value than the // original migration. - sqlStore.AlterColumnTypeIfExists("OutgoingWebhooks", "Description", "text", "VARCHAR(500)") - sqlStore.AlterColumnTypeIfExists("IncomingWebhooks", "Description", "text", "VARCHAR(500)") - sqlStore.AlterColumnTypeIfExists("OutgoingWebhooks", "IconURL", "text", "VARCHAR(1024)") - sqlStore.AlterColumnDefaultIfExists("OutgoingWebhooks", "Username", model.NewString("NULL"), model.NewString("")) - sqlStore.AlterColumnDefaultIfExists("OutgoingWebhooks", "IconURL", nil, model.NewString("")) - sqlStore.AlterColumnDefaultIfExists("PluginKeyValueStore", "ExpireAt", model.NewString("NULL"), model.NewString("NULL")) + sqlSupplier.AlterColumnTypeIfExists("OutgoingWebhooks", "Description", "text", "VARCHAR(500)") + sqlSupplier.AlterColumnTypeIfExists("IncomingWebhooks", "Description", "text", "VARCHAR(500)") + sqlSupplier.AlterColumnTypeIfExists("OutgoingWebhooks", "IconURL", "text", "VARCHAR(1024)") + sqlSupplier.AlterColumnDefaultIfExists("OutgoingWebhooks", "Username", model.NewString("NULL"), model.NewString("")) + sqlSupplier.AlterColumnDefaultIfExists("OutgoingWebhooks", "IconURL", nil, model.NewString("")) + sqlSupplier.AlterColumnDefaultIfExists("PluginKeyValueStore", "ExpireAt", model.NewString("NULL"), model.NewString("NULL")) - saveSchemaVersion(sqlStore, VERSION_5_8_0) + saveSchemaVersion(sqlSupplier, VERSION_5_8_0) } } -func upgradeDatabaseToVersion59(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_8_0, VERSION_5_9_0) { - saveSchemaVersion(sqlStore, VERSION_5_9_0) +func upgradeDatabaseToVersion59(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_8_0, VERSION_5_9_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_9_0) } } -func upgradeDatabaseToVersion510(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_9_0, VERSION_5_10_0) { - sqlStore.CreateColumnIfNotExistsNoDefault("Channels", "GroupConstrained", "tinyint(4)", "boolean") - sqlStore.CreateColumnIfNotExistsNoDefault("Teams", "GroupConstrained", "tinyint(4)", "boolean") +func upgradeDatabaseToVersion510(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_9_0, VERSION_5_10_0) { + sqlSupplier.CreateColumnIfNotExistsNoDefault("Channels", "GroupConstrained", "tinyint(4)", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Teams", "GroupConstrained", "tinyint(4)", "boolean") - sqlStore.CreateIndexIfNotExists("idx_groupteams_teamid", "GroupTeams", "TeamId") - sqlStore.CreateIndexIfNotExists("idx_groupchannels_channelid", "GroupChannels", "ChannelId") + sqlSupplier.CreateIndexIfNotExists("idx_groupteams_teamid", "GroupTeams", "TeamId") + sqlSupplier.CreateIndexIfNotExists("idx_groupchannels_channelid", "GroupChannels", "ChannelId") - saveSchemaVersion(sqlStore, VERSION_5_10_0) + saveSchemaVersion(sqlSupplier, VERSION_5_10_0) } } -func upgradeDatabaseToVersion511(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_10_0, VERSION_5_11_0) { +func upgradeDatabaseToVersion511(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_10_0, VERSION_5_11_0) { // Enforce all teams have an InviteID set var teams []*model.Team - if _, err := sqlStore.GetReplica().Select(&teams, "SELECT * FROM Teams WHERE InviteId = ''"); err != nil { + if _, err := sqlSupplier.GetReplica().Select(&teams, "SELECT * FROM Teams WHERE InviteId = ''"); err != nil { mlog.Error("Error fetching Teams without InviteID", mlog.Err(err)) } else { for _, team := range teams { team.InviteId = model.NewId() - if _, err := sqlStore.Team().Update(team); err != nil { + if _, err := sqlSupplier.Team().Update(team); err != nil { mlog.Error("Error updating Team InviteIDs", mlog.String("team_id", team.Id), mlog.Err(err)) } } } - saveSchemaVersion(sqlStore, VERSION_5_11_0) + saveSchemaVersion(sqlSupplier, VERSION_5_11_0) } } -func upgradeDatabaseToVersion512(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_11_0, VERSION_5_12_0) { - sqlStore.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeGuest", "boolean", "boolean") - sqlStore.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeGuest", "boolean", "boolean") - sqlStore.CreateColumnIfNotExistsNoDefault("Schemes", "DefaultTeamGuestRole", "text", "VARCHAR(64)") - sqlStore.CreateColumnIfNotExistsNoDefault("Schemes", "DefaultChannelGuestRole", "text", "VARCHAR(64)") +func upgradeDatabaseToVersion512(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_11_0, VERSION_5_12_0) { + sqlSupplier.CreateColumnIfNotExistsNoDefault("TeamMembers", "SchemeGuest", "boolean", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("ChannelMembers", "SchemeGuest", "boolean", "boolean") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Schemes", "DefaultTeamGuestRole", "text", "VARCHAR(64)") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Schemes", "DefaultChannelGuestRole", "text", "VARCHAR(64)") - sqlStore.GetMaster().Exec("UPDATE Schemes SET DefaultTeamGuestRole = '', DefaultChannelGuestRole = ''") + sqlSupplier.GetMaster().Exec("UPDATE Schemes SET DefaultTeamGuestRole = '', DefaultChannelGuestRole = ''") // Saturday, January 24, 2065 5:20:00 AM GMT. To remove all personal access token sessions. - sqlStore.GetMaster().Exec("DELETE FROM Sessions WHERE ExpiresAt > 3000000000000") + sqlSupplier.GetMaster().Exec("DELETE FROM Sessions WHERE ExpiresAt > 3000000000000") - saveSchemaVersion(sqlStore, VERSION_5_12_0) + saveSchemaVersion(sqlSupplier, VERSION_5_12_0) } } -func upgradeDatabaseToVersion513(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_12_0, VERSION_5_13_0) { +func upgradeDatabaseToVersion513(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_12_0, VERSION_5_13_0) { // The previous jobs ran once per minute, cluttering the Jobs table with somewhat useless entries. Clean that up. - sqlStore.GetMaster().Exec("DELETE FROM Jobs WHERE Type = 'plugins'") + sqlSupplier.GetMaster().Exec("DELETE FROM Jobs WHERE Type = 'plugins'") - saveSchemaVersion(sqlStore, VERSION_5_13_0) + saveSchemaVersion(sqlSupplier, VERSION_5_13_0) } } -func upgradeDatabaseToVersion514(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_13_0, VERSION_5_14_0) { - saveSchemaVersion(sqlStore, VERSION_5_14_0) +func upgradeDatabaseToVersion514(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_13_0, VERSION_5_14_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_14_0) } } -func upgradeDatabaseToVersion515(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_14_0, VERSION_5_15_0) { - saveSchemaVersion(sqlStore, VERSION_5_15_0) +func upgradeDatabaseToVersion515(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_14_0, VERSION_5_15_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_15_0) } } -func upgradeDatabaseToVersion516(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_15_0, VERSION_5_16_0) { - if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES { - sqlStore.GetMaster().Exec("ALTER TABLE Tokens ALTER COLUMN Extra TYPE varchar(2048)") - } else if sqlStore.DriverName() == model.DATABASE_DRIVER_MYSQL { - sqlStore.GetMaster().Exec("ALTER TABLE Tokens MODIFY Extra text") +func upgradeDatabaseToVersion516(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_15_0, VERSION_5_16_0) { + if sqlSupplier.DriverName() == model.DATABASE_DRIVER_POSTGRES { + sqlSupplier.GetMaster().Exec("ALTER TABLE Tokens ALTER COLUMN Extra TYPE varchar(2048)") + } else if sqlSupplier.DriverName() == model.DATABASE_DRIVER_MYSQL { + sqlSupplier.GetMaster().Exec("ALTER TABLE Tokens MODIFY Extra text") } - saveSchemaVersion(sqlStore, VERSION_5_16_0) + saveSchemaVersion(sqlSupplier, VERSION_5_16_0) // Fix mismatches between the canonical and migrated schemas. - sqlStore.AlterColumnTypeIfExists("TeamMembers", "SchemeGuest", "tinyint(4)", "boolean") - sqlStore.AlterColumnTypeIfExists("Schemes", "DefaultTeamGuestRole", "varchar(64)", "VARCHAR(64)") - sqlStore.AlterColumnTypeIfExists("Schemes", "DefaultChannelGuestRole", "varchar(64)", "VARCHAR(64)") - sqlStore.AlterColumnTypeIfExists("Teams", "AllowedDomains", "text", "VARCHAR(1000)") - sqlStore.AlterColumnTypeIfExists("Channels", "GroupConstrained", "tinyint(1)", "boolean") - sqlStore.AlterColumnTypeIfExists("Teams", "GroupConstrained", "tinyint(1)", "boolean") + sqlSupplier.AlterColumnTypeIfExists("TeamMembers", "SchemeGuest", "tinyint(4)", "boolean") + sqlSupplier.AlterColumnTypeIfExists("Schemes", "DefaultTeamGuestRole", "varchar(64)", "VARCHAR(64)") + sqlSupplier.AlterColumnTypeIfExists("Schemes", "DefaultChannelGuestRole", "varchar(64)", "VARCHAR(64)") + sqlSupplier.AlterColumnTypeIfExists("Teams", "AllowedDomains", "text", "VARCHAR(1000)") + sqlSupplier.AlterColumnTypeIfExists("Channels", "GroupConstrained", "tinyint(1)", "boolean") + sqlSupplier.AlterColumnTypeIfExists("Teams", "GroupConstrained", "tinyint(1)", "boolean") // One known mismatch remains: ChannelMembers.SchemeGuest. The requisite migration // is left here for posterity, but we're avoiding fix this given the corresponding // table rewrite in most MySQL and Postgres instances. - // sqlStore.AlterColumnTypeIfExists("ChannelMembers", "SchemeGuest", "tinyint(4)", "boolean") + // sqlSupplier.AlterColumnTypeIfExists("ChannelMembers", "SchemeGuest", "tinyint(4)", "boolean") - sqlStore.CreateIndexIfNotExists("idx_groupteams_teamid", "GroupTeams", "TeamId") - sqlStore.CreateIndexIfNotExists("idx_groupchannels_channelid", "GroupChannels", "ChannelId") + sqlSupplier.CreateIndexIfNotExists("idx_groupteams_teamid", "GroupTeams", "TeamId") + sqlSupplier.CreateIndexIfNotExists("idx_groupchannels_channelid", "GroupChannels", "ChannelId") } } -func upgradeDatabaseToVersion517(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_16_0, VERSION_5_17_0) { - saveSchemaVersion(sqlStore, VERSION_5_17_0) +func upgradeDatabaseToVersion517(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_16_0, VERSION_5_17_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_17_0) } } -func upgradeDatabaseToVersion518(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_17_0, VERSION_5_18_0) { - saveSchemaVersion(sqlStore, VERSION_5_18_0) +func upgradeDatabaseToVersion518(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_17_0, VERSION_5_18_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_18_0) } } -func upgradeDatabaseToVersion519(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_18_0, VERSION_5_19_0) { - saveSchemaVersion(sqlStore, VERSION_5_19_0) +func upgradeDatabaseToVersion519(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_18_0, VERSION_5_19_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_19_0) } } -func upgradeDatabaseToVersion520(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_19_0, VERSION_5_20_0) { - sqlStore.CreateColumnIfNotExistsNoDefault("Bots", "LastIconUpdate", "bigint", "bigint") +func upgradeDatabaseToVersion520(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_19_0, VERSION_5_20_0) { + sqlSupplier.CreateColumnIfNotExistsNoDefault("Bots", "LastIconUpdate", "bigint", "bigint") - sqlStore.CreateColumnIfNotExists("GroupTeams", "SchemeAdmin", "boolean", "boolean", "0") - sqlStore.CreateIndexIfNotExists("idx_groupteams_schemeadmin", "GroupTeams", "SchemeAdmin") + sqlSupplier.CreateColumnIfNotExists("GroupTeams", "SchemeAdmin", "boolean", "boolean", "0") + sqlSupplier.CreateIndexIfNotExists("idx_groupteams_schemeadmin", "GroupTeams", "SchemeAdmin") - sqlStore.CreateColumnIfNotExists("GroupChannels", "SchemeAdmin", "boolean", "boolean", "0") - sqlStore.CreateIndexIfNotExists("idx_groupchannels_schemeadmin", "GroupChannels", "SchemeAdmin") + sqlSupplier.CreateColumnIfNotExists("GroupChannels", "SchemeAdmin", "boolean", "boolean", "0") + sqlSupplier.CreateIndexIfNotExists("idx_groupchannels_schemeadmin", "GroupChannels", "SchemeAdmin") - saveSchemaVersion(sqlStore, VERSION_5_20_0) + saveSchemaVersion(sqlSupplier, VERSION_5_20_0) } } -func upgradeDatabaseToVersion521(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_20_0, VERSION_5_21_0) { - saveSchemaVersion(sqlStore, VERSION_5_21_0) +func upgradeDatabaseToVersion521(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_20_0, VERSION_5_21_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_21_0) } } -func upgradeDatabaseToVersion522(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_21_0, VERSION_5_22_0) { - sqlStore.CreateIndexIfNotExists("idx_teams_scheme_id", "Teams", "SchemeId") - sqlStore.CreateIndexIfNotExists("idx_channels_scheme_id", "Channels", "SchemeId") - sqlStore.CreateIndexIfNotExists("idx_channels_scheme_id", "Channels", "SchemeId") - sqlStore.CreateIndexIfNotExists("idx_schemes_channel_guest_role", "Schemes", "DefaultChannelGuestRole") - sqlStore.CreateIndexIfNotExists("idx_schemes_channel_user_role", "Schemes", "DefaultChannelUserRole") - sqlStore.CreateIndexIfNotExists("idx_schemes_channel_admin_role", "Schemes", "DefaultChannelAdminRole") +func upgradeDatabaseToVersion522(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_21_0, VERSION_5_22_0) { + sqlSupplier.CreateIndexIfNotExists("idx_teams_scheme_id", "Teams", "SchemeId") + sqlSupplier.CreateIndexIfNotExists("idx_channels_scheme_id", "Channels", "SchemeId") + sqlSupplier.CreateIndexIfNotExists("idx_channels_scheme_id", "Channels", "SchemeId") + sqlSupplier.CreateIndexIfNotExists("idx_schemes_channel_guest_role", "Schemes", "DefaultChannelGuestRole") + sqlSupplier.CreateIndexIfNotExists("idx_schemes_channel_user_role", "Schemes", "DefaultChannelUserRole") + sqlSupplier.CreateIndexIfNotExists("idx_schemes_channel_admin_role", "Schemes", "DefaultChannelAdminRole") - saveSchemaVersion(sqlStore, VERSION_5_22_0) + saveSchemaVersion(sqlSupplier, VERSION_5_22_0) } } -func upgradeDatabaseToVersion523(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_22_0, VERSION_5_23_0) { - saveSchemaVersion(sqlStore, VERSION_5_23_0) +func upgradeDatabaseToVersion523(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_22_0, VERSION_5_23_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_23_0) } } -func upgradeDatabaseToVersion524(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_23_0, VERSION_5_24_0) { - sqlStore.CreateColumnIfNotExists("UserGroups", "AllowReference", "boolean", "boolean", "0") - sqlStore.GetMaster().Exec("UPDATE UserGroups SET Name = null, AllowReference = false") - sqlStore.AlterPrimaryKey("Reactions", []string{"PostId", "UserId", "EmojiName"}) +func upgradeDatabaseToVersion524(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_23_0, VERSION_5_24_0) { + sqlSupplier.CreateColumnIfNotExists("UserGroups", "AllowReference", "boolean", "boolean", "0") + sqlSupplier.GetMaster().Exec("UPDATE UserGroups SET Name = null, AllowReference = false") + sqlSupplier.AlterPrimaryKey("Reactions", []string{"PostId", "UserId", "EmojiName"}) - saveSchemaVersion(sqlStore, VERSION_5_24_0) + saveSchemaVersion(sqlSupplier, VERSION_5_24_0) } } -func upgradeDatabaseToVersion525(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_24_0, VERSION_5_25_0) { - saveSchemaVersion(sqlStore, VERSION_5_25_0) +func upgradeDatabaseToVersion525(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_24_0, VERSION_5_25_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_25_0) } } -func upgradeDatabaseToVersion526(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_25_0, VERSION_5_26_0) { - sqlStore.CreateColumnIfNotExists("Sessions", "ExpiredNotify", "boolean", "boolean", "0") +func upgradeDatabaseToVersion526(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_25_0, VERSION_5_26_0) { + sqlSupplier.CreateColumnIfNotExists("Sessions", "ExpiredNotify", "boolean", "boolean", "0") - saveSchemaVersion(sqlStore, VERSION_5_26_0) + saveSchemaVersion(sqlSupplier, VERSION_5_26_0) } } -func upgradeDatabaseToVersion527(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_26_0, VERSION_5_27_0) { - saveSchemaVersion(sqlStore, VERSION_5_27_0) +func upgradeDatabaseToVersion527(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_26_0, VERSION_5_27_0) { + saveSchemaVersion(sqlSupplier, VERSION_5_27_0) } } -func upgradeDatabaseToVersion528(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_27_0, VERSION_5_28_0) { - if err := precheckMigrationToVersion528(sqlStore); err != nil { +func upgradeDatabaseToVersion528(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_27_0, VERSION_5_28_0) { + if err := precheckMigrationToVersion528(sqlSupplier); 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") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Commands", "PluginId", "VARCHAR(190)", "VARCHAR(190)") + sqlSupplier.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)") + sqlSupplier.AlterColumnTypeIfExists("Teams", "Type", "VARCHAR(255)", "VARCHAR(255)") + sqlSupplier.AlterColumnTypeIfExists("Teams", "SchemeId", "VARCHAR(26)", "VARCHAR(26)") + sqlSupplier.AlterColumnTypeIfExists("IncomingWebhooks", "Username", "varchar(255)", "varchar(255)") + sqlSupplier.AlterColumnTypeIfExists("IncomingWebhooks", "IconURL", "text", "varchar(1024)") - saveSchemaVersion(sqlStore, VERSION_5_28_0) + saveSchemaVersion(sqlSupplier, VERSION_5_28_0) } } -func upgradeDatabaseToVersion5281(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_28_0, VERSION_5_28_1) { - sqlStore.CreateColumnIfNotExistsNoDefault("FileInfo", "MiniPreview", "MEDIUMBLOB", "bytea") +func upgradeDatabaseToVersion5281(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_28_0, VERSION_5_28_1) { + sqlSupplier.CreateColumnIfNotExistsNoDefault("FileInfo", "MiniPreview", "MEDIUMBLOB", "bytea") - saveSchemaVersion(sqlStore, VERSION_5_28_1) + saveSchemaVersion(sqlSupplier, VERSION_5_28_1) } } -func precheckMigrationToVersion528(sqlStore SqlStore) error { - teamsQuery, _, err := sqlStore.getQueryBuilder().Select(`COALESCE(SUM(CASE +func precheckMigrationToVersion528(sqlSupplier *SqlSupplier) error { + teamsQuery, _, err := sqlSupplier.getQueryBuilder().Select(`COALESCE(SUM(CASE WHEN CHAR_LENGTH(SchemeId) > 26 THEN 1 ELSE 0 END),0) as schemeidwrong, @@ -880,7 +880,7 @@ func precheckMigrationToVersion528(sqlStore SqlStore) error { if err != nil { return err } - webhooksQuery, _, err := sqlStore.getQueryBuilder().Select(`COALESCE(SUM(CASE + webhooksQuery, _, err := sqlSupplier.getQueryBuilder().Select(`COALESCE(SUM(CASE WHEN CHAR_LENGTH(Username) > 255 THEN 1 ELSE 0 END),0) as usernamewrong, @@ -894,7 +894,7 @@ func precheckMigrationToVersion528(sqlStore SqlStore) error { } var schemeIDWrong, typeWrong int - row := sqlStore.GetMaster().Db.QueryRow(teamsQuery) + row := sqlSupplier.GetMaster().Db.QueryRow(teamsQuery) if err = row.Scan(&schemeIDWrong, &typeWrong); err != nil && err != sql.ErrNoRows { return err } else if err == nil && schemeIDWrong > 0 { @@ -906,7 +906,7 @@ func precheckMigrationToVersion528(sqlStore SqlStore) error { } var usernameWrong, iconURLWrong int - row = sqlStore.GetMaster().Db.QueryRow(webhooksQuery) + row = sqlSupplier.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)) } else if err == nil && usernameWrong > 0 { @@ -920,34 +920,34 @@ func precheckMigrationToVersion528(sqlStore SqlStore) error { return nil } -func upgradeDatabaseToVersion529(sqlStore SqlStore) { - if shouldPerformUpgrade(sqlStore, VERSION_5_28_1, VERSION_5_29_0) { - sqlStore.AlterColumnTypeIfExists("SidebarCategories", "Id", "VARCHAR(128)", "VARCHAR(128)") - sqlStore.AlterColumnDefaultIfExists("SidebarCategories", "Id", model.NewString(""), nil) - sqlStore.AlterColumnTypeIfExists("SidebarChannels", "CategoryId", "VARCHAR(128)", "VARCHAR(128)") - sqlStore.AlterColumnDefaultIfExists("SidebarChannels", "CategoryId", model.NewString(""), nil) +func upgradeDatabaseToVersion529(sqlSupplier *SqlSupplier) { + if shouldPerformUpgrade(sqlSupplier, VERSION_5_28_1, VERSION_5_29_0) { + sqlSupplier.AlterColumnTypeIfExists("SidebarCategories", "Id", "VARCHAR(128)", "VARCHAR(128)") + sqlSupplier.AlterColumnDefaultIfExists("SidebarCategories", "Id", model.NewString(""), nil) + sqlSupplier.AlterColumnTypeIfExists("SidebarChannels", "CategoryId", "VARCHAR(128)", "VARCHAR(128)") + sqlSupplier.AlterColumnDefaultIfExists("SidebarChannels", "CategoryId", model.NewString(""), nil) - sqlStore.CreateColumnIfNotExistsNoDefault("Threads", "ChannelId", "VARCHAR(26)", "VARCHAR(26)") + sqlSupplier.CreateColumnIfNotExistsNoDefault("Threads", "ChannelId", "VARCHAR(26)", "VARCHAR(26)") updateThreadChannelsQuery := "UPDATE Threads INNER JOIN Posts ON Posts.Id=Threads.PostId SET Threads.ChannelId=Posts.ChannelId WHERE Threads.ChannelId IS NULL" - if sqlStore.DriverName() == model.DATABASE_DRIVER_POSTGRES { + if sqlSupplier.DriverName() == model.DATABASE_DRIVER_POSTGRES { updateThreadChannelsQuery = "UPDATE Threads SET ChannelId=Posts.ChannelId FROM Posts WHERE Posts.Id=Threads.PostId AND Threads.ChannelId IS NULL" } - if _, err := sqlStore.GetMaster().Exec(updateThreadChannelsQuery); err != nil { + if _, err := sqlSupplier.GetMaster().Exec(updateThreadChannelsQuery); err != nil { mlog.Error("Error updating ChannelId in Threads table", mlog.Err(err)) } - saveSchemaVersion(sqlStore, VERSION_5_29_0) + saveSchemaVersion(sqlSupplier, VERSION_5_29_0) } } -func upgradeDatabaseToVersion530(sqlStore SqlStore) { - // if shouldPerformUpgrade(sqlStore, VERSION_5_29_0, VERSION_5_30_0) { +func upgradeDatabaseToVersion530(sqlSupplier *SqlSupplier) { + // if shouldPerformUpgrade(sqlSupplier, VERSION_5_29_0, VERSION_5_30_0) { - sqlStore.CreateColumnIfNotExistsNoDefault("FileInfo", "Content", "longtext", "text") + sqlSupplier.CreateColumnIfNotExistsNoDefault("FileInfo", "Content", "longtext", "text") - sqlStore.CreateColumnIfNotExists("SidebarCategories", "Muted", "tinyint(1)", "boolean", "0") + sqlSupplier.CreateColumnIfNotExists("SidebarCategories", "Muted", "tinyint(1)", "boolean", "0") - // saveSchemaVersion(sqlStore, VERSION_5_30_0) + // saveSchemaVersion(sqlSupplier, VERSION_5_30_0) // } } diff --git a/store/sqlstore/upgrade_test.go b/store/sqlstore/upgrade_test.go index 0206042539..24a46c8c3d 100644 --- a/store/sqlstore/upgrade_test.go +++ b/store/sqlstore/upgrade_test.go @@ -12,7 +12,7 @@ import ( func TestStoreUpgrade(t *testing.T) { StoreTest(t, func(t *testing.T, ss store.Store) { - sqlStore := ss.(SqlStore) + sqlStore := ss.(*SqlSupplier) t.Run("invalid currentModelVersion", func(t *testing.T) { err := upgradeDatabase(sqlStore, "notaversion") @@ -81,7 +81,7 @@ func TestStoreUpgrade(t *testing.T) { func TestSaveSchemaVersion(t *testing.T) { StoreTest(t, func(t *testing.T, ss store.Store) { - sqlStore := ss.(SqlStore) + sqlStore := ss.(*SqlSupplier) t.Run("set earliest version", func(t *testing.T) { saveSchemaVersion(sqlStore, VERSION_3_0_0) diff --git a/store/sqlstore/upload_session_store.go b/store/sqlstore/upload_session_store.go index 17d0126691..3be330fd8d 100644 --- a/store/sqlstore/upload_session_store.go +++ b/store/sqlstore/upload_session_store.go @@ -15,14 +15,14 @@ import ( ) type SqlUploadSessionStore struct { - SqlStore + *SqlSupplier } -func newSqlUploadSessionStore(sqlStore SqlStore) store.UploadSessionStore { +func newSqlUploadSessionStore(sqlSupplier *SqlSupplier) store.UploadSessionStore { s := &SqlUploadSessionStore{ - SqlStore: sqlStore, + SqlSupplier: sqlSupplier, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.UploadSession{}, "UploadSessions").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Type").SetMaxSize(32) diff --git a/store/sqlstore/user_access_token_store.go b/store/sqlstore/user_access_token_store.go index 850621efaf..4b5b7f45f7 100644 --- a/store/sqlstore/user_access_token_store.go +++ b/store/sqlstore/user_access_token_store.go @@ -15,13 +15,13 @@ import ( ) type SqlUserAccessTokenStore struct { - SqlStore + *SqlSupplier } -func newSqlUserAccessTokenStore(sqlStore SqlStore) store.UserAccessTokenStore { - s := &SqlUserAccessTokenStore{sqlStore} +func newSqlUserAccessTokenStore(sqlSupplier *SqlSupplier) store.UserAccessTokenStore { + s := &SqlUserAccessTokenStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.UserAccessToken{}, "UserAccessTokens").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Token").SetMaxSize(26).SetUnique(true) diff --git a/store/sqlstore/user_store.go b/store/sqlstore/user_store.go index 512baae8bc..e851ee3efd 100644 --- a/store/sqlstore/user_store.go +++ b/store/sqlstore/user_store.go @@ -31,7 +31,7 @@ var ( ) type SqlUserStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface // usersQuery is a starting point for all queries that return one or more Users. @@ -42,10 +42,10 @@ func (us SqlUserStore) ClearCaches() {} func (us SqlUserStore) InvalidateProfileCacheForUser(userId string) {} -func newSqlUserStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.UserStore { +func newSqlUserStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.UserStore { us := &SqlUserStore{ - SqlStore: sqlStore, - metrics: metrics, + SqlSupplier: sqlSupplier, + metrics: metrics, } // note: we are providing field names explicitly here to maintain order of columns (needed when using raw queries) @@ -55,7 +55,7 @@ func newSqlUserStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) st From("Users u"). LeftJoin("Bots b ON ( b.UserId = u.Id )") - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.User{}, "Users").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("Username").SetMaxSize(64).SetUnique(true) diff --git a/store/sqlstore/user_terms_of_service.go b/store/sqlstore/user_terms_of_service.go index 0ad64ee4f6..f35b1c466f 100644 --- a/store/sqlstore/user_terms_of_service.go +++ b/store/sqlstore/user_terms_of_service.go @@ -13,13 +13,13 @@ import ( ) type SqlUserTermsOfServiceStore struct { - SqlStore + *SqlSupplier } -func newSqlUserTermsOfServiceStore(sqlStore SqlStore) store.UserTermsOfServiceStore { - s := SqlUserTermsOfServiceStore{sqlStore} +func newSqlUserTermsOfServiceStore(sqlSupplier *SqlSupplier) store.UserTermsOfServiceStore { + s := SqlUserTermsOfServiceStore{sqlSupplier} - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.UserTermsOfService{}, "UserTermsOfService").SetKeys(false, "UserId") table.ColMap("UserId").SetMaxSize(26) table.ColMap("TermsOfServiceId").SetMaxSize(26) diff --git a/store/sqlstore/webhook_store.go b/store/sqlstore/webhook_store.go index c4608cea63..829de20009 100644 --- a/store/sqlstore/webhook_store.go +++ b/store/sqlstore/webhook_store.go @@ -15,20 +15,20 @@ import ( ) type SqlWebhookStore struct { - SqlStore + *SqlSupplier metrics einterfaces.MetricsInterface } func (s SqlWebhookStore) ClearCaches() { } -func newSqlWebhookStore(sqlStore SqlStore, metrics einterfaces.MetricsInterface) store.WebhookStore { +func newSqlWebhookStore(sqlSupplier *SqlSupplier, metrics einterfaces.MetricsInterface) store.WebhookStore { s := &SqlWebhookStore{ - SqlStore: sqlStore, - metrics: metrics, + SqlSupplier: sqlSupplier, + metrics: metrics, } - for _, db := range sqlStore.GetAllConns() { + for _, db := range sqlSupplier.GetAllConns() { table := db.AddTableWithName(model.IncomingWebhook{}, "IncomingWebhooks").SetKeys(false, "Id") table.ColMap("Id").SetMaxSize(26) table.ColMap("UserId").SetMaxSize(26) diff --git a/store/storetest/mocks/SqlStore.go b/store/storetest/mocks/SqlStore.go deleted file mode 100644 index 629308fbcc..0000000000 --- a/store/storetest/mocks/SqlStore.go +++ /dev/null @@ -1,956 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -// Regenerate this file using `make store-mocks`. - -package mocks - -import ( - gorp "github.com/mattermost/gorp" - mock "github.com/stretchr/testify/mock" - - squirrel "github.com/Masterminds/squirrel" - - store "github.com/mattermost/mattermost-server/v5/store" -) - -// SqlStore is an autogenerated mock type for the SqlStore type -type SqlStore struct { - mock.Mock -} - -// AlterColumnDefaultIfExists provides a mock function with given fields: tableName, columnName, mySqlColDefault, postgresColDefault -func (_m *SqlStore) AlterColumnDefaultIfExists(tableName string, columnName string, mySqlColDefault *string, postgresColDefault *string) bool { - ret := _m.Called(tableName, columnName, mySqlColDefault, postgresColDefault) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, *string, *string) bool); ok { - r0 = rf(tableName, columnName, mySqlColDefault, postgresColDefault) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// AlterColumnTypeIfExists provides a mock function with given fields: tableName, columnName, mySqlColType, postgresColType -func (_m *SqlStore) AlterColumnTypeIfExists(tableName string, columnName string, mySqlColType string, postgresColType string) bool { - ret := _m.Called(tableName, columnName, mySqlColType, postgresColType) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string, string) bool); ok { - r0 = rf(tableName, columnName, mySqlColType, postgresColType) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// AlterPrimaryKey provides a mock function with given fields: tableName, columnNames -func (_m *SqlStore) AlterPrimaryKey(tableName string, columnNames []string) bool { - ret := _m.Called(tableName, columnNames) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, []string) bool); ok { - r0 = rf(tableName, columnNames) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// Audit provides a mock function with given fields: -func (_m *SqlStore) Audit() store.AuditStore { - ret := _m.Called() - - var r0 store.AuditStore - if rf, ok := ret.Get(0).(func() store.AuditStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.AuditStore) - } - } - - return r0 -} - -// Bot provides a mock function with given fields: -func (_m *SqlStore) Bot() store.BotStore { - ret := _m.Called() - - var r0 store.BotStore - if rf, ok := ret.Get(0).(func() store.BotStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.BotStore) - } - } - - return r0 -} - -// Channel provides a mock function with given fields: -func (_m *SqlStore) Channel() store.ChannelStore { - ret := _m.Called() - - var r0 store.ChannelStore - if rf, ok := ret.Get(0).(func() store.ChannelStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.ChannelStore) - } - } - - return r0 -} - -// Close provides a mock function with given fields: -func (_m *SqlStore) Close() { - _m.Called() -} - -// ClusterDiscovery provides a mock function with given fields: -func (_m *SqlStore) ClusterDiscovery() store.ClusterDiscoveryStore { - ret := _m.Called() - - var r0 store.ClusterDiscoveryStore - if rf, ok := ret.Get(0).(func() store.ClusterDiscoveryStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.ClusterDiscoveryStore) - } - } - - return r0 -} - -// Command provides a mock function with given fields: -func (_m *SqlStore) Command() store.CommandStore { - ret := _m.Called() - - var r0 store.CommandStore - if rf, ok := ret.Get(0).(func() store.CommandStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.CommandStore) - } - } - - return r0 -} - -// CommandWebhook provides a mock function with given fields: -func (_m *SqlStore) CommandWebhook() store.CommandWebhookStore { - ret := _m.Called() - - var r0 store.CommandWebhookStore - if rf, ok := ret.Get(0).(func() store.CommandWebhookStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.CommandWebhookStore) - } - } - - return r0 -} - -// Compliance provides a mock function with given fields: -func (_m *SqlStore) Compliance() store.ComplianceStore { - ret := _m.Called() - - var r0 store.ComplianceStore - if rf, ok := ret.Get(0).(func() store.ComplianceStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.ComplianceStore) - } - } - - return r0 -} - -// CreateColumnIfNotExists provides a mock function with given fields: tableName, columnName, mySqlColType, postgresColType, defaultValue -func (_m *SqlStore) CreateColumnIfNotExists(tableName string, columnName string, mySqlColType string, postgresColType string, defaultValue string) bool { - ret := _m.Called(tableName, columnName, mySqlColType, postgresColType, defaultValue) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string, string, string) bool); ok { - r0 = rf(tableName, columnName, mySqlColType, postgresColType, defaultValue) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// CreateColumnIfNotExistsNoDefault provides a mock function with given fields: tableName, columnName, mySqlColType, postgresColType -func (_m *SqlStore) CreateColumnIfNotExistsNoDefault(tableName string, columnName string, mySqlColType string, postgresColType string) bool { - ret := _m.Called(tableName, columnName, mySqlColType, postgresColType) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string, string) bool); ok { - r0 = rf(tableName, columnName, mySqlColType, postgresColType) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// CreateCompositeIndexIfNotExists provides a mock function with given fields: indexName, tableName, columnNames -func (_m *SqlStore) CreateCompositeIndexIfNotExists(indexName string, tableName string, columnNames []string) bool { - ret := _m.Called(indexName, tableName, columnNames) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, []string) bool); ok { - r0 = rf(indexName, tableName, columnNames) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// CreateFullTextIndexIfNotExists provides a mock function with given fields: indexName, tableName, columnName -func (_m *SqlStore) CreateFullTextIndexIfNotExists(indexName string, tableName string, columnName string) bool { - ret := _m.Called(indexName, tableName, columnName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string) bool); ok { - r0 = rf(indexName, tableName, columnName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// CreateIndexIfNotExists provides a mock function with given fields: indexName, tableName, columnName -func (_m *SqlStore) CreateIndexIfNotExists(indexName string, tableName string, columnName string) bool { - ret := _m.Called(indexName, tableName, columnName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string) bool); ok { - r0 = rf(indexName, tableName, columnName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// CreateUniqueCompositeIndexIfNotExists provides a mock function with given fields: indexName, tableName, columnNames -func (_m *SqlStore) CreateUniqueCompositeIndexIfNotExists(indexName string, tableName string, columnNames []string) bool { - ret := _m.Called(indexName, tableName, columnNames) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, []string) bool); ok { - r0 = rf(indexName, tableName, columnNames) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// CreateUniqueIndexIfNotExists provides a mock function with given fields: indexName, tableName, columnName -func (_m *SqlStore) CreateUniqueIndexIfNotExists(indexName string, tableName string, columnName string) bool { - ret := _m.Called(indexName, tableName, columnName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string) bool); ok { - r0 = rf(indexName, tableName, columnName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// DoesColumnExist provides a mock function with given fields: tableName, columName -func (_m *SqlStore) DoesColumnExist(tableName string, columName string) bool { - ret := _m.Called(tableName, columName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string) bool); ok { - r0 = rf(tableName, columName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// DoesTableExist provides a mock function with given fields: tablename -func (_m *SqlStore) DoesTableExist(tablename string) bool { - ret := _m.Called(tablename) - - var r0 bool - if rf, ok := ret.Get(0).(func(string) bool); ok { - r0 = rf(tablename) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// DoesTriggerExist provides a mock function with given fields: triggerName -func (_m *SqlStore) DoesTriggerExist(triggerName string) bool { - ret := _m.Called(triggerName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string) bool); ok { - r0 = rf(triggerName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// DriverName provides a mock function with given fields: -func (_m *SqlStore) DriverName() string { - ret := _m.Called() - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// Emoji provides a mock function with given fields: -func (_m *SqlStore) Emoji() store.EmojiStore { - ret := _m.Called() - - var r0 store.EmojiStore - if rf, ok := ret.Get(0).(func() store.EmojiStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.EmojiStore) - } - } - - return r0 -} - -// FileInfo provides a mock function with given fields: -func (_m *SqlStore) FileInfo() store.FileInfoStore { - ret := _m.Called() - - var r0 store.FileInfoStore - if rf, ok := ret.Get(0).(func() store.FileInfoStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.FileInfoStore) - } - } - - return r0 -} - -// GetAllConns provides a mock function with given fields: -func (_m *SqlStore) GetAllConns() []*gorp.DbMap { - ret := _m.Called() - - var r0 []*gorp.DbMap - if rf, ok := ret.Get(0).(func() []*gorp.DbMap); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*gorp.DbMap) - } - } - - return r0 -} - -// GetCurrentSchemaVersion provides a mock function with given fields: -func (_m *SqlStore) GetCurrentSchemaVersion() string { - ret := _m.Called() - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// GetDbVersion provides a mock function with given fields: -func (_m *SqlStore) GetDbVersion() (string, error) { - ret := _m.Called() - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// GetMaster provides a mock function with given fields: -func (_m *SqlStore) GetMaster() *gorp.DbMap { - ret := _m.Called() - - var r0 *gorp.DbMap - if rf, ok := ret.Get(0).(func() *gorp.DbMap); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gorp.DbMap) - } - } - - return r0 -} - -// GetMaxLengthOfColumnIfExists provides a mock function with given fields: tableName, columnName -func (_m *SqlStore) GetMaxLengthOfColumnIfExists(tableName string, columnName string) string { - ret := _m.Called(tableName, columnName) - - var r0 string - if rf, ok := ret.Get(0).(func(string, string) string); ok { - r0 = rf(tableName, columnName) - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// GetReplica provides a mock function with given fields: -func (_m *SqlStore) GetReplica() *gorp.DbMap { - ret := _m.Called() - - var r0 *gorp.DbMap - if rf, ok := ret.Get(0).(func() *gorp.DbMap); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gorp.DbMap) - } - } - - return r0 -} - -// GetSearchReplica provides a mock function with given fields: -func (_m *SqlStore) GetSearchReplica() *gorp.DbMap { - ret := _m.Called() - - var r0 *gorp.DbMap - if rf, ok := ret.Get(0).(func() *gorp.DbMap); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*gorp.DbMap) - } - } - - return r0 -} - -// Job provides a mock function with given fields: -func (_m *SqlStore) Job() store.JobStore { - ret := _m.Called() - - var r0 store.JobStore - if rf, ok := ret.Get(0).(func() store.JobStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.JobStore) - } - } - - return r0 -} - -// License provides a mock function with given fields: -func (_m *SqlStore) License() store.LicenseStore { - ret := _m.Called() - - var r0 store.LicenseStore - if rf, ok := ret.Get(0).(func() store.LicenseStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.LicenseStore) - } - } - - return r0 -} - -// LinkMetadata provides a mock function with given fields: -func (_m *SqlStore) LinkMetadata() store.LinkMetadataStore { - ret := _m.Called() - - var r0 store.LinkMetadataStore - if rf, ok := ret.Get(0).(func() store.LinkMetadataStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.LinkMetadataStore) - } - } - - return r0 -} - -// LockToMaster provides a mock function with given fields: -func (_m *SqlStore) LockToMaster() { - _m.Called() -} - -// MarkSystemRanUnitTests provides a mock function with given fields: -func (_m *SqlStore) MarkSystemRanUnitTests() { - _m.Called() -} - -// OAuth provides a mock function with given fields: -func (_m *SqlStore) OAuth() store.OAuthStore { - ret := _m.Called() - - var r0 store.OAuthStore - if rf, ok := ret.Get(0).(func() store.OAuthStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.OAuthStore) - } - } - - return r0 -} - -// Plugin provides a mock function with given fields: -func (_m *SqlStore) Plugin() store.PluginStore { - ret := _m.Called() - - var r0 store.PluginStore - if rf, ok := ret.Get(0).(func() store.PluginStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.PluginStore) - } - } - - return r0 -} - -// Post provides a mock function with given fields: -func (_m *SqlStore) Post() store.PostStore { - ret := _m.Called() - - var r0 store.PostStore - if rf, ok := ret.Get(0).(func() store.PostStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.PostStore) - } - } - - return r0 -} - -// Preference provides a mock function with given fields: -func (_m *SqlStore) Preference() store.PreferenceStore { - ret := _m.Called() - - var r0 store.PreferenceStore - if rf, ok := ret.Get(0).(func() store.PreferenceStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.PreferenceStore) - } - } - - return r0 -} - -// Reaction provides a mock function with given fields: -func (_m *SqlStore) Reaction() store.ReactionStore { - ret := _m.Called() - - var r0 store.ReactionStore - if rf, ok := ret.Get(0).(func() store.ReactionStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.ReactionStore) - } - } - - return r0 -} - -// RemoveColumnIfExists provides a mock function with given fields: tableName, columnName -func (_m *SqlStore) RemoveColumnIfExists(tableName string, columnName string) bool { - ret := _m.Called(tableName, columnName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string) bool); ok { - r0 = rf(tableName, columnName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// RemoveIndexIfExists provides a mock function with given fields: indexName, tableName -func (_m *SqlStore) RemoveIndexIfExists(indexName string, tableName string) bool { - ret := _m.Called(indexName, tableName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string) bool); ok { - r0 = rf(indexName, tableName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// RemoveTableIfExists provides a mock function with given fields: tableName -func (_m *SqlStore) RemoveTableIfExists(tableName string) bool { - ret := _m.Called(tableName) - - var r0 bool - if rf, ok := ret.Get(0).(func(string) bool); ok { - r0 = rf(tableName) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// RenameColumnIfExists provides a mock function with given fields: tableName, oldColumnName, newColumnName, colType -func (_m *SqlStore) RenameColumnIfExists(tableName string, oldColumnName string, newColumnName string, colType string) bool { - ret := _m.Called(tableName, oldColumnName, newColumnName, colType) - - var r0 bool - if rf, ok := ret.Get(0).(func(string, string, string, string) bool); ok { - r0 = rf(tableName, oldColumnName, newColumnName, colType) - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// Role provides a mock function with given fields: -func (_m *SqlStore) Role() store.RoleStore { - ret := _m.Called() - - var r0 store.RoleStore - if rf, ok := ret.Get(0).(func() store.RoleStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.RoleStore) - } - } - - return r0 -} - -// Scheme provides a mock function with given fields: -func (_m *SqlStore) Scheme() store.SchemeStore { - ret := _m.Called() - - var r0 store.SchemeStore - if rf, ok := ret.Get(0).(func() store.SchemeStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.SchemeStore) - } - } - - return r0 -} - -// Session provides a mock function with given fields: -func (_m *SqlStore) Session() store.SessionStore { - ret := _m.Called() - - var r0 store.SessionStore - if rf, ok := ret.Get(0).(func() store.SessionStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.SessionStore) - } - } - - return r0 -} - -// Status provides a mock function with given fields: -func (_m *SqlStore) Status() store.StatusStore { - ret := _m.Called() - - var r0 store.StatusStore - if rf, ok := ret.Get(0).(func() store.StatusStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StatusStore) - } - } - - return r0 -} - -// System provides a mock function with given fields: -func (_m *SqlStore) System() store.SystemStore { - ret := _m.Called() - - var r0 store.SystemStore - if rf, ok := ret.Get(0).(func() store.SystemStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.SystemStore) - } - } - - return r0 -} - -// Team provides a mock function with given fields: -func (_m *SqlStore) Team() store.TeamStore { - ret := _m.Called() - - var r0 store.TeamStore - if rf, ok := ret.Get(0).(func() store.TeamStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.TeamStore) - } - } - - return r0 -} - -// TermsOfService provides a mock function with given fields: -func (_m *SqlStore) TermsOfService() store.TermsOfServiceStore { - ret := _m.Called() - - var r0 store.TermsOfServiceStore - if rf, ok := ret.Get(0).(func() store.TermsOfServiceStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.TermsOfServiceStore) - } - } - - return r0 -} - -// Thread provides a mock function with given fields: -func (_m *SqlStore) Thread() store.ThreadStore { - ret := _m.Called() - - var r0 store.ThreadStore - if rf, ok := ret.Get(0).(func() store.ThreadStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.ThreadStore) - } - } - - return r0 -} - -// Token provides a mock function with given fields: -func (_m *SqlStore) Token() store.TokenStore { - ret := _m.Called() - - var r0 store.TokenStore - if rf, ok := ret.Get(0).(func() store.TokenStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.TokenStore) - } - } - - return r0 -} - -// TotalMasterDbConnections provides a mock function with given fields: -func (_m *SqlStore) TotalMasterDbConnections() int { - ret := _m.Called() - - var r0 int - if rf, ok := ret.Get(0).(func() int); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(int) - } - - return r0 -} - -// TotalReadDbConnections provides a mock function with given fields: -func (_m *SqlStore) TotalReadDbConnections() int { - ret := _m.Called() - - var r0 int - if rf, ok := ret.Get(0).(func() int); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(int) - } - - return r0 -} - -// TotalSearchDbConnections provides a mock function with given fields: -func (_m *SqlStore) TotalSearchDbConnections() int { - ret := _m.Called() - - var r0 int - if rf, ok := ret.Get(0).(func() int); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(int) - } - - return r0 -} - -// UnlockFromMaster provides a mock function with given fields: -func (_m *SqlStore) UnlockFromMaster() { - _m.Called() -} - -// UploadSession provides a mock function with given fields: -func (_m *SqlStore) UploadSession() store.UploadSessionStore { - ret := _m.Called() - - var r0 store.UploadSessionStore - if rf, ok := ret.Get(0).(func() store.UploadSessionStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.UploadSessionStore) - } - } - - return r0 -} - -// User provides a mock function with given fields: -func (_m *SqlStore) User() store.UserStore { - ret := _m.Called() - - var r0 store.UserStore - if rf, ok := ret.Get(0).(func() store.UserStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.UserStore) - } - } - - return r0 -} - -// UserAccessToken provides a mock function with given fields: -func (_m *SqlStore) UserAccessToken() store.UserAccessTokenStore { - ret := _m.Called() - - var r0 store.UserAccessTokenStore - if rf, ok := ret.Get(0).(func() store.UserAccessTokenStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.UserAccessTokenStore) - } - } - - return r0 -} - -// UserTermsOfService provides a mock function with given fields: -func (_m *SqlStore) UserTermsOfService() store.UserTermsOfServiceStore { - ret := _m.Called() - - var r0 store.UserTermsOfServiceStore - if rf, ok := ret.Get(0).(func() store.UserTermsOfServiceStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.UserTermsOfServiceStore) - } - } - - return r0 -} - -// Webhook provides a mock function with given fields: -func (_m *SqlStore) Webhook() store.WebhookStore { - ret := _m.Called() - - var r0 store.WebhookStore - if rf, ok := ret.Get(0).(func() store.WebhookStore); ok { - r0 = rf() - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.WebhookStore) - } - } - - return r0 -} - -// getQueryBuilder provides a mock function with given fields: -func (_m *SqlStore) getQueryBuilder() squirrel.StatementBuilderType { - ret := _m.Called() - - var r0 squirrel.StatementBuilderType - if rf, ok := ret.Get(0).(func() squirrel.StatementBuilderType); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(squirrel.StatementBuilderType) - } - - return r0 -}