initial commit 2
This commit is contained in:
72
sql/0000-initial-db-structure.sql
Normal file
72
sql/0000-initial-db-structure.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
|
||||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
|
||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Schema db_boilerplate
|
||||
-- -----------------------------------------------------
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Schema db_boilerplate
|
||||
-- -----------------------------------------------------
|
||||
CREATE SCHEMA IF NOT EXISTS `db_boilerplate` DEFAULT CHARACTER SET latin1 ;
|
||||
USE `db_boilerplate` ;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `db_boilerplate`.`tab_civil_status`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `db_boilerplate`.`tab_civil_status` (
|
||||
`civil_status_id` INT NOT NULL AUTO_INCREMENT,
|
||||
`civil_status_name` VARCHAR(30) NOT NULL,
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`civil_status_id`),
|
||||
UNIQUE INDEX `name_UNIQUE` (`civil_status_name` ASC))
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `db_boilerplate`.`tab_state`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `db_boilerplate`.`tab_state` (
|
||||
`state_id` INT NOT NULL AUTO_INCREMENT,
|
||||
`state_name` VARCHAR(20) NOT NULL,
|
||||
`acronym` VARCHAR(2) NOT NULL,
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`state_id`),
|
||||
UNIQUE INDEX `acronym_UNIQUE` (`acronym` ASC))
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `db_boilerplate`.`tab_city`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `db_boilerplate`.`tab_city` (
|
||||
`city_id` INT NOT NULL AUTO_INCREMENT,
|
||||
`city_name` VARCHAR(250) NOT NULL,
|
||||
`state_id` INT NOT NULL,
|
||||
`ibge_code` VARCHAR(8) NOT NULL,
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`city_id`),
|
||||
INDEX `fk_tab_city_tab_state1_idx` (`state_id` ASC),
|
||||
UNIQUE INDEX `name_state_UNIQUE` (`city_name` ASC, `state_id` ASC),
|
||||
CONSTRAINT `fk_tab_city_tab_state1`
|
||||
FOREIGN KEY (`state_id`)
|
||||
REFERENCES `db_boilerplate`.`tab_state` (`state_id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
|
||||
SET SQL_MODE=@OLD_SQL_MODE;
|
||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
||||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|
||||
5607
sql/0001-initial-db-load.sql
Normal file
5607
sql/0001-initial-db-load.sql
Normal file
File diff suppressed because it is too large
Load Diff
36
sql/0002-db-version.sql
Normal file
36
sql/0002-db-version.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
CREATE TABLE IF NOT EXISTS `tab_db_version` (
|
||||
`db_version_id` INT NOT NULL AUTO_INCREMENT,
|
||||
`db_version` VARCHAR(100) NOT NULL,
|
||||
`db_version_create_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`db_version_update_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`db_version_id`),
|
||||
UNIQUE INDEX `uq_tab_db_version_db_version` (`db_version` ASC));
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
DROP PROCEDURE IF EXISTS `sp_set_db_version`$$
|
||||
|
||||
CREATE PROCEDURE `sp_set_db_version`(
|
||||
IN `script_name` VARCHAR(100)
|
||||
)
|
||||
LANGUAGE SQL
|
||||
DETERMINISTIC
|
||||
MODIFIES SQL DATA
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'Sets a DB version'
|
||||
BEGIN
|
||||
IF (script_name NOT LIKE '%.sql') THEN
|
||||
SET script_name = CONCAT(script_name, '.sql');
|
||||
END IF;
|
||||
|
||||
INSERT INTO `tab_db_version`(`db_version`)
|
||||
VALUES(script_name)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`db_version` = VALUES(`db_version`);
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
call `sp_set_db_version`('0000-initial-db-structure');
|
||||
call `sp_set_db_version`('0001-initial-db-load');
|
||||
call `sp_set_db_version`('0002-db-version');
|
||||
11
sql/0003-create-users-table.sql
Normal file
11
sql/0003-create-users-table.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
CREATE TABLE IF NOT EXISTS `db_boilerplate`.`tab_users` (
|
||||
`user_id` INT NOT NULL AUTO_INCREMENT,
|
||||
`user_name` VARCHAR(50) NOT NULL,
|
||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`active` TINYINT(1) NOT NULL DEFAULT 1,
|
||||
|
||||
PRIMARY KEY (`user_id`)
|
||||
)
|
||||
|
||||
ENGINE = InnoDB;
|
||||
39
sql/0004-db-version.sql
Normal file
39
sql/0004-db-version.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
CREATE TABLE IF NOT EXISTS `tab_db_version` (
|
||||
`db_version_id` INT NOT NULL AUTO_INCREMENT,
|
||||
`db_version` VARCHAR(100) NOT NULL,
|
||||
`db_version_create_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`db_version_update_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`db_version_id`),
|
||||
UNIQUE INDEX `uq_tab_db_version_db_version` (`db_version` ASC));
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
DROP PROCEDURE IF EXISTS `sp_set_db_version`$$
|
||||
|
||||
CREATE PROCEDURE `sp_set_db_version`(
|
||||
IN `script_name` VARCHAR(100)
|
||||
)
|
||||
LANGUAGE SQL
|
||||
DETERMINISTIC
|
||||
MODIFIES SQL DATA
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'Sets a DB version'
|
||||
BEGIN
|
||||
IF (script_name NOT LIKE '%.sql') THEN
|
||||
SET script_name = CONCAT(script_name, '.sql');
|
||||
END IF;
|
||||
|
||||
INSERT INTO `tab_db_version`(`db_version`)
|
||||
VALUES(script_name)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`db_version` = VALUES(`db_version`);
|
||||
END$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
call `sp_set_db_version`('0000-initial-db-structure');
|
||||
call `sp_set_db_version`('0001-initial-db-load');
|
||||
call `sp_set_db_version`('0002-db-version');
|
||||
|
||||
call `sp_set_db_version`('0003-create-users-table');
|
||||
call `sp_set_db_version`('0004-db-version');
|
||||
Reference in New Issue
Block a user