mirror of
https://github.com/documize/community.git
synced 2025-07-19 05:09:42 +02:00
Ground work for installing and upgrading database schema based upon DB provider (MySQL, PostgresSQL, SQL Server, etc.) Cleaned up legacy cruft, refactored, commented and made simpler for to support additional database providers.
67 lines
2.7 KiB
Go
67 lines
2.7 KiB
Go
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
|
|
//
|
|
// This software (Documize Community Edition) is licensed under
|
|
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
|
|
//
|
|
// You can operate outside the AGPL restrictions by purchasing
|
|
// Documize Enterprise Edition and obtaining a commercial license
|
|
// by contacting <sales@documize.com>.
|
|
//
|
|
// https://documize.com
|
|
|
|
// Package storage sets up database persistence providers.
|
|
package storage
|
|
|
|
import (
|
|
"github.com/documize/community/core/env"
|
|
"github.com/documize/community/domain"
|
|
account "github.com/documize/community/domain/account/mysql"
|
|
activity "github.com/documize/community/domain/activity/mysql"
|
|
attachment "github.com/documize/community/domain/attachment/mysql"
|
|
audit "github.com/documize/community/domain/audit/mysql"
|
|
block "github.com/documize/community/domain/block/mysql"
|
|
category "github.com/documize/community/domain/category/mysql"
|
|
doc "github.com/documize/community/domain/document/mysql"
|
|
group "github.com/documize/community/domain/group/mysql"
|
|
link "github.com/documize/community/domain/link/mysql"
|
|
meta "github.com/documize/community/domain/meta/mysql"
|
|
org "github.com/documize/community/domain/organization/mysql"
|
|
page "github.com/documize/community/domain/page/mysql"
|
|
permission "github.com/documize/community/domain/permission/mysql"
|
|
pin "github.com/documize/community/domain/pin/mysql"
|
|
search "github.com/documize/community/domain/search/mysql"
|
|
setting "github.com/documize/community/domain/setting/mysql"
|
|
space "github.com/documize/community/domain/space/mysql"
|
|
user "github.com/documize/community/domain/user/mysql"
|
|
)
|
|
|
|
// SetMySQLProvider creates MySQL provider
|
|
func SetMySQLProvider(r *env.Runtime, s *domain.Store) {
|
|
// Required connection string parameters and defaults.
|
|
r.Storage.Params = map[string]string{
|
|
"charset": "utf8mb4",
|
|
"parseTime": "True",
|
|
"maxAllowedPacket": "104857600", // 4194304 // 16777216 = 16MB // 104857600 = 100MB
|
|
}
|
|
|
|
r.Storage.Example = "database connection string format is 'username:password@tcp(host:3306)/database'"
|
|
|
|
s.Account = account.Scope{Runtime: r}
|
|
s.Activity = activity.Scope{Runtime: r}
|
|
s.Attachment = attachment.Scope{Runtime: r}
|
|
s.Audit = audit.Scope{Runtime: r}
|
|
s.Block = block.Scope{Runtime: r}
|
|
s.Category = category.Scope{Runtime: r}
|
|
s.Document = doc.Scope{Runtime: r}
|
|
s.Group = group.Scope{Runtime: r}
|
|
s.Link = link.Scope{Runtime: r}
|
|
s.Meta = meta.Scope{Runtime: r}
|
|
s.Organization = org.Scope{Runtime: r}
|
|
s.Page = page.Scope{Runtime: r}
|
|
s.Pin = pin.Scope{Runtime: r}
|
|
s.Permission = permission.Scope{Runtime: r}
|
|
s.Search = search.Scope{Runtime: r}
|
|
s.Setting = setting.Scope{Runtime: r}
|
|
s.Space = space.Scope{Runtime: r}
|
|
s.User = user.Scope{Runtime: r}
|
|
}
|