mirror of
https://github.com/documize/community.git
synced 2025-07-19 13:19:43 +02:00
parent
db1af55c6c
commit
00c2d17fcb
20 changed files with 775 additions and 740 deletions
|
@ -20,7 +20,7 @@ v1.51.0
|
|||
|
||||
- EmberJS (v2.14.0)
|
||||
- Go (v1.8.3)
|
||||
- MySQL (v5.7.10+) or Percona (v5.7.16-10+)
|
||||
- MySQL (v5.7.10+) or Percona (v5.7.16-10+) or MariaDB (10.3.0+)
|
||||
|
||||
## Documentation
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@ func Check(runtime *env.Runtime) bool {
|
|||
// Check minimum MySQL version as we need JSON column type.
|
||||
verInts := []int{5, 7, 10} // Minimum MySQL version
|
||||
if runtime.DbVariant == env.DBVariantMariaDB {
|
||||
verInts = []int{10, 2, 0} // Minimum MariaDB version
|
||||
verInts = []int{10, 3, 0} // Minimum MariaDB version
|
||||
}
|
||||
|
||||
for k, v := range verInts {
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
## TODO
|
||||
|
||||
1. Remove audit table
|
||||
2. Remove document.layout field
|
||||
2. Remove document.layout field ?
|
||||
|
||||
|
||||
## MYSQL
|
||||
## MYSQL ENCODING
|
||||
|
||||
https://stackoverflow.com/questions/37307146/difference-between-utf8mb4-unicode-ci-and-utf8mb4-unicode-520-ci-collations-in-m
|
||||
|
||||
|
@ -13,8 +13,9 @@ https://mathiasbynens.be/notes/mysql-utf8mb4
|
|||
|
||||
https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434
|
||||
|
||||
ALTER DATABASE documize CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
|
||||
ALTER DATABASE documize CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
ALTER TABLE account CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
ALTER TABLE attachment CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
ALTER TABLE block CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
@ -38,3 +39,6 @@ ALTER TABLE useractivity CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
|||
ALTER TABLE userconfig CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
ALTER TABLE userevent CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
|
||||
documenttitle, pagetitle, body
|
||||
CHARACTER SET utf8mb4 COLLATE utf8mb4
|
|
@ -5,19 +5,19 @@ DROP TABLE IF EXISTS `user`;
|
|||
CREATE TABLE IF NOT EXISTS `user` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`refid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`firstname` NVARCHAR(500) NOT NULL,
|
||||
`lastname` NVARCHAR(500) NOT NULL,
|
||||
`email` NVARCHAR(250) NOT NULL UNIQUE,
|
||||
`initials` NVARCHAR(10) NOT NULL DEFAULT "",
|
||||
`password` NVARCHAR(500) NOT NULL DEFAULT "",
|
||||
`salt` NVARCHAR(100) NOT NULL DEFAULT "",
|
||||
`reset` NVARCHAR(100) NOT NULL DEFAULT "",
|
||||
`firstname` VARCHAR(500) NOT NULL,
|
||||
`lastname` VARCHAR(500) NOT NULL,
|
||||
`email` VARCHAR(250) NOT NULL UNIQUE,
|
||||
`initials` VARCHAR(10) NOT NULL DEFAULT "",
|
||||
`password` VARCHAR(500) NOT NULL DEFAULT "",
|
||||
`salt` VARCHAR(100) NOT NULL DEFAULT "",
|
||||
`reset` VARCHAR(100) NOT NULL DEFAULT "",
|
||||
`active` BOOL NOT NULL DEFAULT 1,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`revised` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT pk_refid PRIMARY KEY (refid),
|
||||
UNIQUE INDEX `idx_user_id` (`id` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `audit`;
|
||||
|
@ -28,11 +28,11 @@ CREATE TABLE IF NOT EXISTS `audit` (
|
|||
`userid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`documentid` CHAR(16) NOT NULL DEFAULT "" COLLATE utf8_bin,
|
||||
`pageid` CHAR(16) NOT NULL DEFAULT "" COLLATE utf8_bin,
|
||||
`action` NVARCHAR(200) NOT NULL DEFAULT "",
|
||||
`action` VARCHAR(200) NOT NULL DEFAULT "",
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE INDEX `idx_audit_id` (`id` ASC),
|
||||
INDEX `idx_orgid_url` (`orgid`))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `organization`;
|
||||
|
@ -40,15 +40,15 @@ DROP TABLE IF EXISTS `organization`;
|
|||
CREATE TABLE IF NOT EXISTS `organization` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`refid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`company` NVARCHAR(500) NOT NULL,
|
||||
`title` NVARCHAR(500) NOT NULL,
|
||||
`message` NVARCHAR(500) NOT NULL,
|
||||
`url` NVARCHAR(200) NOT NULL DEFAULT "",
|
||||
`domain` NVARCHAR(200) NOT NULL DEFAULT "",
|
||||
`email` NVARCHAR(500) NOT NULL DEFAULT "",
|
||||
`company` VARCHAR(500) NOT NULL,
|
||||
`title` VARCHAR(500) NOT NULL,
|
||||
`message` VARCHAR(500) NOT NULL,
|
||||
`url` VARCHAR(200) NOT NULL DEFAULT "",
|
||||
`domain` VARCHAR(200) NOT NULL DEFAULT "",
|
||||
`email` VARCHAR(500) NOT NULL DEFAULT "",
|
||||
`allowanonymousaccess` BOOL NOT NULL DEFAULT 0,
|
||||
`verified` BOOL NOT NULL DEFAULT 0,
|
||||
`serial` NVARCHAR(50) NOT NULL DEFAULT "",
|
||||
`serial` VARCHAR(50) NOT NULL DEFAULT "",
|
||||
`active` BOOL NOT NULL DEFAULT 1,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`revised` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
|
@ -56,7 +56,7 @@ CREATE TABLE IF NOT EXISTS `organization` (
|
|||
UNIQUE INDEX `idx_organization_id` (`id` ASC),
|
||||
INDEX `idx_organization_url` (`url`),
|
||||
INDEX `idx_organization_domain` (`domain`))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `account`;
|
||||
|
@ -74,7 +74,7 @@ CREATE TABLE IF NOT EXISTS `account` (
|
|||
UNIQUE INDEX `idx_account_id` (`id` ASC),
|
||||
INDEX `idx_account_userid` (`userid` ASC),
|
||||
INDEX `idx_account_orgid` (`orgid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `label`;
|
||||
|
@ -82,7 +82,7 @@ DROP TABLE IF EXISTS `label`;
|
|||
CREATE TABLE IF NOT EXISTS `label` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`refid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`label` NVARCHAR(255) NOT NULL,
|
||||
`label` VARCHAR(255) NOT NULL,
|
||||
`orgid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`userid` CHAR(16) NOT NULL DEFAULT "" COLLATE utf8_bin,
|
||||
`type` INT NOT NULL DEFAULT 1,
|
||||
|
@ -92,7 +92,7 @@ CREATE TABLE IF NOT EXISTS `label` (
|
|||
UNIQUE INDEX `idx_label_id` (`id` ASC),
|
||||
INDEX `idx_label_userid` (`userid` ASC),
|
||||
INDEX `idx_label_orgid` (`orgid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `labelrole`;
|
||||
|
@ -112,7 +112,7 @@ CREATE TABLE IF NOT EXISTS `labelrole` (
|
|||
INDEX `idx_labelrole_userid` (`userid` ASC),
|
||||
INDEX `idx_labelrole_labelid` (`labelid` ASC),
|
||||
INDEX `idx_labelrole_orgid` (`orgid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `document`;
|
||||
|
@ -124,11 +124,11 @@ CREATE TABLE IF NOT EXISTS `document` (
|
|||
`labelid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`userid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`job` CHAR(36) NOT NULL,
|
||||
`location` NVARCHAR(2000) NOT NULL,
|
||||
`title` NVARCHAR(2000) NOT NULL,
|
||||
`excerpt` NVARCHAR(2000) NOT NULL,
|
||||
`slug` NVARCHAR(2000) NOT NULL,
|
||||
`tags` NVARCHAR(1000) NOT NULL DEFAULT '',
|
||||
`location` VARCHAR(2000) NOT NULL,
|
||||
`title` VARCHAR(2000) NOT NULL,
|
||||
`excerpt` VARCHAR(2000) NOT NULL,
|
||||
`slug` VARCHAR(2000) NOT NULL,
|
||||
`tags` VARCHAR(1000) NOT NULL DEFAULT '',
|
||||
`template` BOOL NOT NULL DEFAULT 0,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`revised` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
|
@ -136,7 +136,7 @@ CREATE TABLE IF NOT EXISTS `document` (
|
|||
UNIQUE INDEX `idx_document_id` (`id` ASC),
|
||||
INDEX `idx_document_orgid` (`orgid` ASC),
|
||||
INDEX `idx_document_labelid` (`labelid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `page`;
|
||||
|
@ -150,7 +150,7 @@ CREATE TABLE IF NOT EXISTS `page` (
|
|||
`contenttype` CHAR(20) NOT NULL DEFAULT 'wysiwyg',
|
||||
`level` INT UNSIGNED NOT NULL,
|
||||
`sequence` DOUBLE NOT NULL,
|
||||
`title` NVARCHAR(2000) NOT NULL,
|
||||
`title` VARCHAR(2000) NOT NULL,
|
||||
`body` LONGTEXT,
|
||||
`revisions` INT UNSIGNED NOT NULL,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
|
@ -159,7 +159,7 @@ CREATE TABLE IF NOT EXISTS `page` (
|
|||
UNIQUE INDEX `idx_page_id` (`id` ASC),
|
||||
INDEX `idx_page_orgid` (`orgid` ASC),
|
||||
INDEX `idx_page_documentid` (`documentid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `pagemeta`;
|
||||
|
@ -180,7 +180,7 @@ CREATE TABLE IF NOT EXISTS `pagemeta` (
|
|||
INDEX `idx_pagemeta_pageid` (`pageid` ASC),
|
||||
INDEX `idx_pagemeta_orgid` (`orgid` ASC),
|
||||
INDEX `idx_pagemeta_documentid` (`documentid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `attachment`;
|
||||
|
@ -192,7 +192,7 @@ CREATE TABLE IF NOT EXISTS `attachment` (
|
|||
`documentid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`job` CHAR(36) NOT NULL,
|
||||
`fileid` CHAR(10) NOT NULL,
|
||||
`filename` NVARCHAR(255) NOT NULL,
|
||||
`filename` VARCHAR(255) NOT NULL,
|
||||
`data` LONGBLOB,
|
||||
`extension` CHAR(6) NOT NULL,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
|
@ -202,7 +202,7 @@ CREATE TABLE IF NOT EXISTS `attachment` (
|
|||
INDEX `idx_attachment_orgid` (`orgid` ASC),
|
||||
INDEX `idx_attachment_documentid` (`documentid` ASC),
|
||||
INDEX `idx_attachment_job_and_fileid` (`job`,`fileid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `search`;
|
||||
|
@ -213,9 +213,9 @@ CREATE TABLE IF NOT EXISTS `search` (
|
|||
`documentid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`level` INT UNSIGNED NOT NULL,
|
||||
`sequence` DOUBLE NOT NULL,
|
||||
`documenttitle` NVARCHAR(2000) NOT NULL,
|
||||
`pagetitle` NVARCHAR(2000) NOT NULL,
|
||||
`slug` NVARCHAR(2000) NOT NULL,
|
||||
`documenttitle` VARCHAR(2000) NOT NULL,
|
||||
`pagetitle` VARCHAR(2000) NOT NULL,
|
||||
`slug` VARCHAR(2000) NOT NULL,
|
||||
`body` LONGTEXT,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`revised` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
|
@ -224,7 +224,7 @@ CREATE TABLE IF NOT EXISTS `search` (
|
|||
INDEX `idx_search_documentid` (`documentid` ASC),
|
||||
INDEX `idx_search_sequence` (`sequence` ASC),
|
||||
FULLTEXT(`pagetitle`,`body`))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = MyISAM;
|
||||
|
||||
DROP TABLE IF EXISTS `revision`;
|
||||
|
@ -238,7 +238,7 @@ CREATE TABLE IF NOT EXISTS `revision` (
|
|||
`pageid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`userid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`contenttype` CHAR(20) NOT NULL DEFAULT 'wysiwyg',
|
||||
`title` NVARCHAR(2000) NOT NULL,
|
||||
`title` VARCHAR(2000) NOT NULL,
|
||||
`body` LONGTEXT,
|
||||
`rawbody` LONGBLOB,
|
||||
`config` JSON,
|
||||
|
@ -249,7 +249,7 @@ CREATE TABLE IF NOT EXISTS `revision` (
|
|||
INDEX `idx_revision_orgid` (`orgid` ASC),
|
||||
INDEX `idx_revision_documentid` (`documentid` ASC),
|
||||
INDEX `idx_revision_pageid` (`pageid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
DROP TABLE IF EXISTS `config`;
|
||||
|
@ -258,7 +258,7 @@ CREATE TABLE IF NOT EXISTS `config` (
|
|||
`key` CHAR(255) NOT NULL,
|
||||
`config` JSON,
|
||||
UNIQUE INDEX `idx_config_area` (`key` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
|
||||
|
||||
INSERT INTO `config` VALUES ('SMTP','{\"userid\": \"\",\"password\": \"\",\"host\": \"\",\"port\": \"\",\"sender\": \"\"}');
|
||||
INSERT INTO `config` VALUES ('FILEPLUGINS',
|
||||
|
@ -275,5 +275,5 @@ CREATE TABLE IF NOT EXISTS `userconfig` (
|
|||
`key` CHAR(255) NOT NULL,
|
||||
`config` JSON,
|
||||
UNIQUE INDEX `idx_userconfig_orguserkey` (`orgid`, `userid`, `key` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
|
@ -6,13 +6,13 @@ CREATE TABLE IF NOT EXISTS `share` (
|
|||
`orgid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`documentid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`userid` CHAR(16) DEFAULT '' COLLATE utf8_bin,
|
||||
`email` NVARCHAR(250) NOT NULL DEFAULT '',
|
||||
`message` NVARCHAR(500) NOT NULL DEFAULT '',
|
||||
`email` VARCHAR(250) NOT NULL DEFAULT '',
|
||||
`message` VARCHAR(500) NOT NULL DEFAULT '',
|
||||
`viewed` VARCHAR(500) NOT NULL DEFAULT '',
|
||||
`secret` VARCHAR(200) NOT NULL DEFAULT '',
|
||||
`expires` CHAR(16) DEFAULT '' COLLATE utf8_bin,
|
||||
`active` BOOL NOT NULL DEFAULT 1,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT pk_id PRIMARY KEY (id))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
|
@ -7,9 +7,9 @@ CREATE TABLE IF NOT EXISTS `feedback` (
|
|||
`orgid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`documentid` CHAR(16) NOT NULL COLLATE utf8_bin,
|
||||
`userid` CHAR(16) DEFAULT '' COLLATE utf8_bin,
|
||||
`email` NVARCHAR(250) NOT NULL DEFAULT '',
|
||||
`email` VARCHAR(250) NOT NULL DEFAULT '',
|
||||
`feedback` LONGTEXT,
|
||||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT pk_id PRIMARY KEY (id))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
|
@ -16,5 +16,5 @@ CREATE TABLE IF NOT EXISTS `link` (
|
|||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
`revised` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT pk_id PRIMARY KEY (id))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
|
@ -12,5 +12,5 @@ CREATE TABLE IF NOT EXISTS `participant` (
|
|||
`created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT pk_id PRIMARY KEY (id),
|
||||
INDEX `idx_participant_documentid` (`documentid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
|
@ -14,5 +14,5 @@ CREATE TABLE IF NOT EXISTS `pin` (
|
|||
`revised` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
CONSTRAINT pk_id PRIMARY KEY (id),
|
||||
INDEX `idx_pin_userid` (`userid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
|
@ -9,9 +9,9 @@ CREATE TABLE IF NOT EXISTS `block` (
|
|||
`userid` CHAR(16) DEFAULT '' COLLATE utf8_bin,
|
||||
`contenttype` CHAR(20) NOT NULL DEFAULT 'wysiwyg',
|
||||
`pagetype` CHAR(10) NOT NULL DEFAULT 'section',
|
||||
`title` NVARCHAR(2000) NOT NULL,
|
||||
`title` VARCHAR(2000) NOT NULL,
|
||||
`body` LONGTEXT,
|
||||
`excerpt` NVARCHAR(2000) NOT NULL,
|
||||
`excerpt` VARCHAR(2000) NOT NULL,
|
||||
`used` INT UNSIGNED NOT NULL,
|
||||
`rawbody` LONGBLOB,
|
||||
`config` JSON,
|
||||
|
@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS `block` (
|
|||
CONSTRAINT pk_id PRIMARY KEY (id),
|
||||
INDEX `idx_block_refid` (`refid` ASC),
|
||||
INDEX `idx_block_labelid` (`labelid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
ALTER TABLE page ADD COLUMN `blockid` CHAR(16) NOT NULL DEFAULT '' COLLATE utf8_bin AFTER `pagetype`;
|
||||
|
|
|
@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS `useractivity` (
|
|||
INDEX `idx_activity_userid` (`userid` ASC),
|
||||
INDEX `idx_activity_sourceid` (`sourceid` ASC),
|
||||
INDEX `idx_activity_activitytype` (`activitytype` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
/* Note:
|
||||
* - this table replaces the soon-to-be-deprecated audit log table
|
||||
|
@ -84,7 +84,7 @@ CREATE TABLE IF NOT EXISTS `useraction` (
|
|||
INDEX `idx_useraction_userid` (`userid` ASC),
|
||||
INDEX `idx_useraction_documentid` (`documentid` ASC),
|
||||
INDEX `idx_useraction_requestorid` (`requestorid` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
||||
/* community edition */
|
||||
|
|
|
@ -12,5 +12,5 @@ CREATE TABLE IF NOT EXISTS `userevent` (
|
|||
INDEX `idx_userevent_orgid` (`orgid` ASC),
|
||||
INDEX `idx_userevent_userid` (`userid` ASC),
|
||||
INDEX `idx_userevent_eventtype` (`eventtype` ASC))
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
|
||||
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
|
||||
ENGINE = InnoDB;
|
||||
|
|
4
core/env/runtime.go
vendored
4
core/env/runtime.go
vendored
|
@ -45,4 +45,8 @@ const (
|
|||
DBVariantPercona DbVariant = "Percona"
|
||||
// DBVariantMariaDB is MariaDB
|
||||
DBVariantMariaDB DbVariant = "MariaDB"
|
||||
// DBVariantMSSQL is Microsoft SQL Server
|
||||
DBVariantMSSQL DbVariant = "MSSQL"
|
||||
// DBVariantPostgreSQL is PostgreSQL
|
||||
DBVariantPostgreSQL DbVariant = "PostgreSQL"
|
||||
)
|
||||
|
|
|
@ -279,10 +279,9 @@ func (s Scope) Documents(ctx domain.RequestContext, keywords string) (results []
|
|||
}
|
||||
|
||||
keywords = strings.TrimSpace(keywords)
|
||||
// keywords = strings.ToLower(keywords)
|
||||
|
||||
if len(keywords) > 0 {
|
||||
keywordQuery = "AND MATCH(pagetitle,body) AGAINST('" + keywords + "' in boolean mode)"
|
||||
keywordQuery = "AND MATCH(documenttitle,pagetitle,body) AGAINST('" + keywords + "' in boolean mode)"
|
||||
}
|
||||
|
||||
sql := `SELECT search.id, documentid, pagetitle, document.labelid, document.title as documenttitle, document.tags,
|
||||
|
|
50
edition/boot/mysql.go
Normal file
50
edition/boot/mysql.go
Normal file
|
@ -0,0 +1,50 @@
|
|||
// 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 boot prepares runtime environment.
|
||||
package boot
|
||||
|
||||
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"
|
||||
doc "github.com/documize/community/domain/document/mysql"
|
||||
link "github.com/documize/community/domain/link/mysql"
|
||||
org "github.com/documize/community/domain/organization/mysql"
|
||||
page "github.com/documize/community/domain/page/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"
|
||||
)
|
||||
|
||||
// StoreMySQL creates MySQL provider
|
||||
func StoreMySQL(r *env.Runtime, s *domain.Store) {
|
||||
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.Document = doc.Scope{Runtime: r}
|
||||
s.Link = link.Scope{Runtime: r}
|
||||
s.Organization = org.Scope{Runtime: r}
|
||||
s.Page = page.Scope{Runtime: r}
|
||||
s.Pin = pin.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}
|
||||
}
|
|
@ -72,8 +72,6 @@ func InitRuntime(r *env.Runtime, s *domain.Store) bool {
|
|||
r.Log.Error("unable to run database migration", err)
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
r.Log.Info("going into setup mode to prepare new database")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,38 +15,19 @@ package boot
|
|||
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"
|
||||
doc "github.com/documize/community/domain/document/mysql"
|
||||
link "github.com/documize/community/domain/link/mysql"
|
||||
org "github.com/documize/community/domain/organization/mysql"
|
||||
page "github.com/documize/community/domain/page/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"
|
||||
)
|
||||
|
||||
// AttachStore selects database persistence layer
|
||||
func AttachStore(r *env.Runtime, s *domain.Store) {
|
||||
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.Document = doc.Scope{Runtime: r}
|
||||
s.Link = link.Scope{Runtime: r}
|
||||
s.Organization = org.Scope{Runtime: r}
|
||||
s.Page = page.Scope{Runtime: r}
|
||||
s.Pin = pin.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}
|
||||
|
||||
switch r.DbVariant {
|
||||
case env.DbVariantMySQL, env.DBVariantPercona, env.DBVariantMariaDB:
|
||||
StoreMySQL(r, s)
|
||||
case env.DBVariantMSSQL:
|
||||
// todo
|
||||
case env.DBVariantPostgreSQL:
|
||||
// todo
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/golang-sql/sqlexp/blob/c2488a8be21d20d31abf0d05c2735efd2d09afe4/quoter.go#L46
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@
|
|||
<div class="sidebar-wrapper">
|
||||
<div class="page-search">
|
||||
<div class="input-control">
|
||||
{{focus-input type="text" value=filter placeholder='search'}}
|
||||
{{focus-input type="text" value=filter placeholder='type search phrase (case sensitive)'}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -31,12 +31,6 @@ var testHost string // used during automated testing
|
|||
|
||||
// Start router to handle all HTTP traffic.
|
||||
func Start(rt *env.Runtime, s *domain.Store, ready chan struct{}) {
|
||||
err := plugins.Setup(s)
|
||||
if err != nil {
|
||||
rt.Log.Error("Terminating before running - invalid plugin.json", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
rt.Log.Info(fmt.Sprintf("Starting %s version %s", rt.Product.Title, rt.Product.Version))
|
||||
|
||||
// decide which mode to serve up
|
||||
|
@ -50,6 +44,11 @@ func Start(rt *env.Runtime, s *domain.Store, ready chan struct{}) {
|
|||
case env.SiteModeBadDB:
|
||||
rt.Log.Info("Serving BAD DATABASE web server")
|
||||
default:
|
||||
err := plugins.Setup(s)
|
||||
if err != nil {
|
||||
rt.Log.Error("Terminating before running - invalid plugin.json", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
rt.Log.Info("Starting web server")
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue