mirror of
https://github.com/documize/community.git
synced 2025-07-19 13:19:43 +02:00
1. Full text search supports MySQL, MariaDB, Percona and now PostgreSQL. 2. Changed SQL Variant to typed enum. 3. Changed doc.Versioned from INT to BOOL. 4. Search Reindexer now parses all documents and attachments. 5. Site meta API call returns storage provider type. 6. README prep'ed for PostgreSQL support. 7. DELETE SQL statements ignore zero rows affected. Closes #100 !!! Co-Authored-By: Saul S <sauls8t@users.noreply.github.com> Co-Authored-By: McMatts <matt@documize.com>
109 lines
3.5 KiB
Go
109 lines
3.5 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 env provides runtime, server level setup and configuration
|
|
package env
|
|
|
|
// StoreType represents name of database system
|
|
type StoreType string
|
|
|
|
const (
|
|
// StoreTypeMySQL is MySQL
|
|
StoreTypeMySQL StoreType = "MySQL"
|
|
|
|
// StoreTypePercona is Percona
|
|
StoreTypePercona StoreType = "Percona"
|
|
|
|
// StoreTypeMariaDB is MariaDB
|
|
StoreTypeMariaDB StoreType = "MariaDB"
|
|
|
|
// StoreTypePostgreSQL is PostgreSQL
|
|
StoreTypePostgreSQL StoreType = "PostgreSQL"
|
|
|
|
// StoreTypeMSSQL is Microsoft SQL Server
|
|
StoreTypeMSSQL StoreType = "MSSQL"
|
|
)
|
|
|
|
// StoreProvider defines a database provider.
|
|
type StoreProvider interface {
|
|
// Name of provider
|
|
Type() StoreType
|
|
|
|
// TypeVariant returns flavor of database provider.
|
|
TypeVariant() StoreType
|
|
|
|
// SQL driver name used to open DB connection.
|
|
DriverName() string
|
|
|
|
// Database connection string parameters that must be present before connecting to DB.
|
|
Params() map[string]string
|
|
|
|
// Example holds storage provider specific connection string format.
|
|
// used in error messages
|
|
Example() string
|
|
|
|
// DatabaseName holds the SQL database name where Documize tables live.
|
|
DatabaseName() string
|
|
|
|
// Make connection string with default parameters.
|
|
MakeConnectionString() string
|
|
|
|
// QueryMeta is how to extract version number, collation, character set from database provider.
|
|
QueryMeta() string
|
|
|
|
// QueryStartLock locks database tables.
|
|
// QueryStartLock() string
|
|
|
|
// QueryFinishLock unlocks database tables.
|
|
// QueryFinishLock() string
|
|
|
|
// QueryInsertProcessID returns database specific query that will
|
|
// insert ID of this running process.
|
|
// QueryInsertProcessID() string
|
|
|
|
// QueryInsertProcessID returns database specific query that will
|
|
// delete ID of this running process.
|
|
// QueryDeleteProcessID() string
|
|
|
|
// QueryRecordVersionUpgrade returns database specific insert statement
|
|
// that records the database version number.
|
|
QueryRecordVersionUpgrade(version int) string
|
|
|
|
// QueryRecordVersionUpgrade returns database specific insert statement
|
|
// that records the database version number.
|
|
// For use on databases before The Great Schema Migration (v25, MySQL).
|
|
QueryRecordVersionUpgradeLegacy(version int) string
|
|
|
|
// QueryGetDatabaseVersion returns the schema version number.
|
|
QueryGetDatabaseVersion() string
|
|
|
|
// QueryGetDatabaseVersionLegacy returns the schema version number before The Great Schema Migration (v25, MySQL).
|
|
QueryGetDatabaseVersionLegacy() string
|
|
|
|
// QueryTableList returns a list tables in Documize database.
|
|
QueryTableList() string
|
|
|
|
// JSONEmpty returns empty SQL JSON object.
|
|
// Typically used as 2nd parameter to COALESCE().
|
|
JSONEmpty() string
|
|
|
|
// JSONGetValue returns JSON attribute selection syntax.
|
|
// Typically used in SELECT <my_json_field> query.
|
|
JSONGetValue(column, attribute string) string
|
|
|
|
// VerfiyVersion checks to see if actual database meets
|
|
// minimum version requirements.
|
|
VerfiyVersion(dbVersion string) (versionOK bool, minVerRequired string)
|
|
|
|
// VerfiyCharacterCollation checks to see if actual database
|
|
// has correct character set and collation settings.
|
|
VerfiyCharacterCollation(charset, collation string) (charOK bool, requirements string)
|
|
}
|