Files
SE-LTD/docker/mariadb/init/01-init.sql
T

69 lines
2.1 KiB
SQL

CREATE DATABASE IF NOT EXISTS `wago` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `wago`;
DELIMITER //
CREATE PROCEDURE create_isp_tables()
BEGIN
DECLARE table_index INT DEFAULT 1;
DECLARE value_index INT DEFAULT 1;
DECLARE value_columns LONGTEXT DEFAULT '';
DECLARE stmt_sql LONGTEXT;
WHILE value_index <= 200 DO
SET value_columns = CONCAT(value_columns, ', `Wert', value_index, '` TEXT NULL');
SET value_index = value_index + 1;
END WHILE;
WHILE table_index <= 20 DO
SET stmt_sql = CONCAT(
'CREATE TABLE IF NOT EXISTS `isp',
LPAD(table_index, 2, '0'),
'` (',
'`id` INT(11) NOT NULL AUTO_INCREMENT,',
'`datum` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
'`userlevel` INT(1) DEFAULT NULL',
value_columns,
', PRIMARY KEY (`id`)',
') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;'
);
PREPARE stmt FROM stmt_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET table_index = table_index + 1;
END WHILE;
END//
CALL create_isp_tables()//
DROP PROCEDURE create_isp_tables//
DELIMITER ;
CREATE TABLE IF NOT EXISTS `app_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(80) NOT NULL,
`name` VARCHAR(120) NOT NULL,
`email` VARCHAR(160) NULL,
`password_hash` VARCHAR(255) NOT NULL,
`role` ENUM('viewer', 'technician', 'admin') NOT NULL DEFAULT 'viewer',
`active` TINYINT(1) NOT NULL DEFAULT 1,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_app_users_username` (`username`),
UNIQUE KEY `uniq_app_users_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'SE3112';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE USER IF NOT EXISTS 'wago'@'%' IDENTIFIED BY '3112';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX ON * . * TO 'wago'@'%' IDENTIFIED BY '3112';
FLUSH PRIVILEGES;