|
|
|
@@ -14,20 +14,17 @@ SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Schema minicms
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE SCHEMA IF NOT EXISTS `minicms` DEFAULT CHARACTER SET utf8 ;
|
|
|
|
|
USE `minicms` ;
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`user`
|
|
|
|
|
-- Table `user`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`user` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `user` (
|
|
|
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
|
|
|
`email` VARCHAR(64) NOT NULL COMMENT 'E-mail is used as a contact and also as a username',
|
|
|
|
|
`username` VARCHAR(64) NOT NULL,
|
|
|
|
|
`username` VARCHAR(64) NOT NULL COMMENT 'Username can be used also for login. Default value is users email.',
|
|
|
|
|
`password` VARCHAR(128) NOT NULL COMMENT 'Password hash',
|
|
|
|
|
`remember_token` VARCHAR(128) NULL DEFAULT NULL COMMENT 'Token used for \"remember me\" feature',
|
|
|
|
|
`name` VARCHAR(128) NULL DEFAULT NULL,
|
|
|
|
|
`status` ENUM('deleted', 'blocked', 'active') NULL DEFAULT 'active' COMMENT 'Username can be used also for login. Default value is users email.',
|
|
|
|
|
`status` ENUM('deleted', 'blocked', 'active') NOT NULL DEFAULT 'active' ,
|
|
|
|
|
PRIMARY KEY (`id`),
|
|
|
|
|
UNIQUE INDEX `email_UNIQUE` (`email` ASC))
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
@@ -35,9 +32,9 @@ COMMENT = 'Table with users who are allowed to log into system';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`module`
|
|
|
|
|
-- Table `module`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`module` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `module` (
|
|
|
|
|
`handler` VARCHAR(64) NOT NULL,
|
|
|
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
`name` VARCHAR(64) NOT NULL,
|
|
|
|
@@ -47,9 +44,9 @@ ENGINE = InnoDB;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`file`
|
|
|
|
|
-- Table `file`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`file` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `file` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`user_id` INT NOT NULL,
|
|
|
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
@@ -60,7 +57,7 @@ CREATE TABLE IF NOT EXISTS `minicms`.`file` (
|
|
|
|
|
INDEX `fk_file_user1_idx` (`user_id` ASC),
|
|
|
|
|
CONSTRAINT `fk_file_user1`
|
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
|
REFERENCES `minicms`.`user` (`id`)
|
|
|
|
|
REFERENCES `user` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
@@ -68,9 +65,9 @@ COMMENT = 'Table containing files which were uploaded into system.';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`content`
|
|
|
|
|
-- Table `content`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`content` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `content` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`user_id` INT NOT NULL,
|
|
|
|
|
`module_handler` VARCHAR(64) NOT NULL,
|
|
|
|
@@ -95,17 +92,17 @@ CREATE TABLE IF NOT EXISTS `minicms`.`content` (
|
|
|
|
|
INDEX `fk_content_file1_idx` (`title_photo` ASC),
|
|
|
|
|
CONSTRAINT `fk_content_user1`
|
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
|
REFERENCES `minicms`.`user` (`id`)
|
|
|
|
|
REFERENCES `user` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION,
|
|
|
|
|
CONSTRAINT `fk_content_module1`
|
|
|
|
|
FOREIGN KEY (`module_handler`)
|
|
|
|
|
REFERENCES `minicms`.`module` (`handler`)
|
|
|
|
|
REFERENCES `module` (`handler`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION,
|
|
|
|
|
CONSTRAINT `fk_content_file1`
|
|
|
|
|
FOREIGN KEY (`title_photo`)
|
|
|
|
|
REFERENCES `minicms`.`file` (`id`)
|
|
|
|
|
REFERENCES `file` (`id`)
|
|
|
|
|
ON DELETE SET NULL
|
|
|
|
|
ON UPDATE CASCADE)
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
@@ -113,9 +110,9 @@ COMMENT = 'Table with all content pages.';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`content_history`
|
|
|
|
|
-- Table `content_history`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`content_history` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `content_history` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`user_id` INT NOT NULL,
|
|
|
|
|
`content_id` INT NOT NULL,
|
|
|
|
@@ -131,12 +128,12 @@ CREATE TABLE IF NOT EXISTS `minicms`.`content_history` (
|
|
|
|
|
INDEX `fk_content_history_content1_idx` (`content_id` ASC),
|
|
|
|
|
CONSTRAINT `fk_content_history_users`
|
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
|
REFERENCES `minicms`.`user` (`id`)
|
|
|
|
|
REFERENCES `user` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION,
|
|
|
|
|
CONSTRAINT `fk_content_history_content1`
|
|
|
|
|
FOREIGN KEY (`content_id`)
|
|
|
|
|
REFERENCES `minicms`.`content` (`id`)
|
|
|
|
|
REFERENCES `content` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
@@ -144,9 +141,9 @@ COMMENT = 'Table for holding history of changes on some content.';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`widget_type`
|
|
|
|
|
-- Table `widget_type`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`widget_type` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `widget_type` (
|
|
|
|
|
`handler` VARCHAR(64) NOT NULL COMMENT 'Class wich handles everything about this widget type',
|
|
|
|
|
`name` VARCHAR(64) NOT NULL COMMENT 'Name is used only in admin for better readability.',
|
|
|
|
|
`description` TEXT NULL DEFAULT NULL COMMENT 'This field also improves readability.',
|
|
|
|
@@ -156,9 +153,9 @@ COMMENT = 'Widget type table contains information about all installed widgets. T
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`widget`
|
|
|
|
|
-- Table `widget`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`widget` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `widget` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`widget_type_handler` VARCHAR(64) NOT NULL,
|
|
|
|
|
`user_id` INT NOT NULL COMMENT 'User ID who created this widget',
|
|
|
|
@@ -171,12 +168,12 @@ CREATE TABLE IF NOT EXISTS `minicms`.`widget` (
|
|
|
|
|
INDEX `fk_widget_widget_type1_idx` (`widget_type_handler` ASC),
|
|
|
|
|
CONSTRAINT `fk_widget_user1`
|
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
|
REFERENCES `minicms`.`user` (`id`)
|
|
|
|
|
REFERENCES `user` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION,
|
|
|
|
|
CONSTRAINT `fk_widget_widget_type1`
|
|
|
|
|
FOREIGN KEY (`widget_type_handler`)
|
|
|
|
|
REFERENCES `minicms`.`widget_type` (`handler`)
|
|
|
|
|
REFERENCES `widget_type` (`handler`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
@@ -184,9 +181,9 @@ COMMENT = 'Widget is a small piece of content, which can be inserted into widget
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`widget_area`
|
|
|
|
|
-- Table `widget_area`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`widget_area` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `widget_area` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
@@ -200,9 +197,9 @@ COMMENT = 'Widget area is container for widgets. This container is inserted into
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`widget_in_widget_area`
|
|
|
|
|
-- Table `widget_in_widget_area`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`widget_in_widget_area` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `widget_in_widget_area` (
|
|
|
|
|
`widget_id` INT NOT NULL,
|
|
|
|
|
`widget_area_id` INT NOT NULL,
|
|
|
|
|
`position` INT NOT NULL COMMENT 'Which position should the widget take?',
|
|
|
|
@@ -212,21 +209,21 @@ CREATE TABLE IF NOT EXISTS `minicms`.`widget_in_widget_area` (
|
|
|
|
|
INDEX `position` (`position` ASC),
|
|
|
|
|
CONSTRAINT `fk_widget_has_widget_area_widget1`
|
|
|
|
|
FOREIGN KEY (`widget_id`)
|
|
|
|
|
REFERENCES `minicms`.`widget` (`id`)
|
|
|
|
|
REFERENCES `widget` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION,
|
|
|
|
|
CONSTRAINT `fk_widget_has_widget_area_widget_area1`
|
|
|
|
|
FOREIGN KEY (`widget_area_id`)
|
|
|
|
|
REFERENCES `minicms`.`widget_area` (`id`)
|
|
|
|
|
REFERENCES `widget_area` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`custom_field`
|
|
|
|
|
-- Table `custom_field`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`custom_field` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `custom_field` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`handler` VARCHAR(64) NOT NULL COMMENT 'Class name, which handles saving and retrieving given custom field.',
|
|
|
|
|
`name` VARCHAR(128) NULL,
|
|
|
|
@@ -242,9 +239,9 @@ COMMENT = 'List of all custom fields which may be used for extending some part o
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`user_has_custom_field`
|
|
|
|
|
-- Table `user_has_custom_field`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`user_has_custom_field` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `user_has_custom_field` (
|
|
|
|
|
`user_id` INT NOT NULL,
|
|
|
|
|
`custom_field_id` INT NOT NULL,
|
|
|
|
|
`value` TEXT NOT NULL,
|
|
|
|
@@ -253,21 +250,21 @@ CREATE TABLE IF NOT EXISTS `minicms`.`user_has_custom_field` (
|
|
|
|
|
INDEX `fk_user_has_custom_field_user1_idx` (`user_id` ASC),
|
|
|
|
|
CONSTRAINT `fk_user_has_custom_field_user1`
|
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
|
REFERENCES `minicms`.`user` (`id`)
|
|
|
|
|
REFERENCES `user` (`id`)
|
|
|
|
|
ON DELETE CASCADE
|
|
|
|
|
ON UPDATE CASCADE,
|
|
|
|
|
CONSTRAINT `fk_user_has_custom_field_custom_field1`
|
|
|
|
|
FOREIGN KEY (`custom_field_id`)
|
|
|
|
|
REFERENCES `minicms`.`custom_field` (`id`)
|
|
|
|
|
REFERENCES `custom_field` (`id`)
|
|
|
|
|
ON DELETE CASCADE
|
|
|
|
|
ON UPDATE CASCADE)
|
|
|
|
|
ENGINE = InnoDB;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`custom_field_type`
|
|
|
|
|
-- Table `custom_field_type`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`custom_field_type` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `custom_field_type` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`name` VARCHAR(45) NOT NULL,
|
|
|
|
|
`custom_field_id` INT NOT NULL,
|
|
|
|
@@ -276,7 +273,7 @@ CREATE TABLE IF NOT EXISTS `minicms`.`custom_field_type` (
|
|
|
|
|
INDEX `fk_custom_field_type_custom_field1_idx` (`custom_field_id` ASC),
|
|
|
|
|
CONSTRAINT `fk_custom_field_type_custom_field1`
|
|
|
|
|
FOREIGN KEY (`custom_field_id`)
|
|
|
|
|
REFERENCES `minicms`.`custom_field` (`id`)
|
|
|
|
|
REFERENCES `custom_field` (`id`)
|
|
|
|
|
ON DELETE RESTRICT
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
@@ -284,9 +281,9 @@ COMMENT = 'List of all custom field types.';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`module_has_custom_field`
|
|
|
|
|
-- Table `module_has_custom_field`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`module_has_custom_field` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `module_has_custom_field` (
|
|
|
|
|
`module_handler` VARCHAR(64) NOT NULL,
|
|
|
|
|
`custom_field_id` INT NOT NULL,
|
|
|
|
|
`value` TEXT NOT NULL,
|
|
|
|
@@ -295,21 +292,21 @@ CREATE TABLE IF NOT EXISTS `minicms`.`module_has_custom_field` (
|
|
|
|
|
INDEX `fk_module_has_custom_field_module1_idx` (`module_handler` ASC),
|
|
|
|
|
CONSTRAINT `fk_module_has_custom_field_module1`
|
|
|
|
|
FOREIGN KEY (`module_handler`)
|
|
|
|
|
REFERENCES `minicms`.`module` (`handler`)
|
|
|
|
|
REFERENCES `module` (`handler`)
|
|
|
|
|
ON DELETE CASCADE
|
|
|
|
|
ON UPDATE CASCADE,
|
|
|
|
|
CONSTRAINT `fk_module_has_custom_field_custom_field1`
|
|
|
|
|
FOREIGN KEY (`custom_field_id`)
|
|
|
|
|
REFERENCES `minicms`.`custom_field` (`id`)
|
|
|
|
|
REFERENCES `custom_field` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`action_log_type`
|
|
|
|
|
-- Table `action_log_type`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`action_log_type` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `action_log_type` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`name` VARCHAR(45) NULL,
|
|
|
|
|
PRIMARY KEY (`id`))
|
|
|
|
@@ -318,9 +315,9 @@ COMMENT = 'List of all types which can be logged.';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
-- Table `minicms`.`action_log`
|
|
|
|
|
-- Table `action_log`
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `minicms`.`action_log` (
|
|
|
|
|
CREATE TABLE IF NOT EXISTS `action_log` (
|
|
|
|
|
`id` INT NOT NULL,
|
|
|
|
|
`type_id` INT NOT NULL,
|
|
|
|
|
`user_id` INT NOT NULL,
|
|
|
|
@@ -331,12 +328,12 @@ CREATE TABLE IF NOT EXISTS `minicms`.`action_log` (
|
|
|
|
|
INDEX `fk_action_log_user1_idx` (`user_id` ASC),
|
|
|
|
|
CONSTRAINT `fk_action_log_action_log_type1`
|
|
|
|
|
FOREIGN KEY (`type_id`)
|
|
|
|
|
REFERENCES `minicms`.`action_log_type` (`id`)
|
|
|
|
|
REFERENCES `action_log_type` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION,
|
|
|
|
|
CONSTRAINT `fk_action_log_user1`
|
|
|
|
|
FOREIGN KEY (`user_id`)
|
|
|
|
|
REFERENCES `minicms`.`user` (`id`)
|
|
|
|
|
REFERENCES `user` (`id`)
|
|
|
|
|
ON DELETE NO ACTION
|
|
|
|
|
ON UPDATE NO ACTION)
|
|
|
|
|
ENGINE = InnoDB
|
|
|
|
|