Removing unnecesary SqlStore interface (#16057)

Этот коммит содержится в:
Jesús Espino
2020-11-20 10:51:58 +01:00
коммит произвёл GitHub
родитель 5b1a716e2c
Коммит d274cf8afa
39 изменённых файлов: 538 добавлений и 1591 удалений

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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{}

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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
}

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

@@ -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)

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

@@ -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)

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

@@ -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
}

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)

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

@@ -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)