Nimbin2git.christianimmanuel.de / Tools / dienstplancreator / createDataDienstplanDB.sh

dienstplancreator git · main

git clone https://git.christianimmanuel.de/tools/dienstplancreator.gitwget https://git.christianimmanuel.de/tools/dienstplancreator/archive/dienstplancreator.tar.gz
createDataDienstplanDB.sh 4.7 KB · 162 lines raw
#!/bin/bash

createdb='DROP DATABASE datadienstplandb; CREATE DATABASE datadienstplandb;'
use='USE datadienstplandb;'
create_a='CREATE TABLE shifts (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   yearweek VARCHAR(255),
   day_id INT,
   person_id INT,
   start FLOAT,
   end FLOAT,
   breaks FLOAT
); CREATE TABLE person_overtimes_manual (
   data_id INT(10) UNSIGNED NOT NULL,
   person_id INT,
   yearweek VARCHAR(255),
   overtime FLOAT,
   PRIMARY KEY (person_id, data_id, yearweek)
); CREATE TABLE person_hours (
   data_id INT(10) UNSIGNED NOT NULL,
   person_id INT,
   yearweek VARCHAR(255),
   hours_is FLOAT,
   hours_should FLOAT,
   PRIMARY KEY (data_id, person_id, yearweek)
); CREATE TABLE roster_person_info (
   data_id int(10) UNSIGNED NOT NULL,
   id VARCHAR(255),
   yearweek VARCHAR(255),
   day_id INT,
   text VARCHAR(255),
   PRIMARY KEY (data_id, id, yearweek, day_id)
); CREATE TABLE roster_editable_cell_right (
   id VARCHAR(255),
   data_id int(10),
   yearweek VARCHAR(255),
   text VARCHAR(255),
   PRIMARY KEY (id, data_id, yearweek)
); CREATE TABLE roster_editable_row_bottom (
   id VARCHAR(255),
   data_id int(10),
   yearweek VARCHAR(255),
   text VARCHAR(255),
   PRIMARY KEY (id, data_id, yearweek)
); CREATE TABLE roster_editable_row_top (
   id VARCHAR(255),
   data_id int(10),
   yearweek VARCHAR(255),
   text VARCHAR(255),
   PRIMARY KEY (id, data_id, yearweek)
);' 
create_b='CREATE TABLE roster_changes (
   data_id int(10) UNSIGNED NOT NULL,
   yearweek VARCHAR(255),
   day_id INT,
   start FLOAT,
   end FLOAT,
   amount VARCHAR(255),
   PRIMARY KEY (data_id, yearweek, day_id)
);'
create_c='CREATE TABLE rosters (
   data_id int(10) UNSIGNED NOT NULL,
   yearweek VARCHAR(255),
   time_step FLOAT,
   break_60 FLOAT,
   break_90 FLOAT,
   days VARCHAR(255),
   PRIMARY KEY (data_id, yearweek)
); CREATE TABLE departments (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   name VARCHAR(255)
); CREATE TABLE person_changes (
   data_id int(10) UNSIGNED NOT NULL,
   person_id INT,
   yearweek VARCHAR(255),
   day_id INT,
   change_key VARCHAR(255),
   value VARCHAR(255),
   PRIMARY KEY (data_id, yearweek, day_id, person_id, change_key)
); CREATE TABLE person_betterments (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   person_id INT,
   start VARCHAR(255),
   end VARCHAR(255),
   hours FLOAT
); CREATE TABLE person_vacations (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   person_id INT,
   start VARCHAR(255),
   end VARCHAR(255)
); CREATE TABLE person_illnes (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   person_id INT,
   start VARCHAR(255),
   end VARCHAR(255)
); CREATE TABLE persons (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   activated VARCHAR(255),
   name VARCHAR(255),
   department INT,
   hours FLOAT,
   mpa VARCHAR(255)
); CREATE TABLE shift_labels (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   name VARCHAR(50),
   cut VARCHAR(50)
); CREATE TABLE settings_labels (
   id INT, 
   data_id int(10) UNSIGNED NOT NULL,
   name VARCHAR(50),
   cut VARCHAR(50)
); CREATE TABLE settings (
   data_id int(10) UNSIGNED NOT NULL,
   database_version VARCHAR(255),
   default_overtime tinyint(1),
   default_edit_cell_right tinyint(1) UNSIGNED NOT NULL,
   default_row_top tinyint(1) UNSIGNED NOT NULL,
   default_row_bottom tinyint(1) UNSIGNED NOT NULL,
   sort_days VARCHAR(255),
   sort_week VARCHAR(255),
   printmode tinyint(1) UNSIGNED NOT NULL,
   zoom_web INT,
   zoom_print_h INT,
   zoom_print_v INT
); CREATE TABLE closingtime_persons (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   closingtime_id INT NOT NULL,
   person_id INT
); CREATE TABLE closingtimes (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   data_id int(10) UNSIGNED NOT NULL,
   name VARCHAR(255),
   start VARCHAR(255),
   end VARCHAR(255),
   lawful tinyint(1) UNSIGNED
); CREATE TABLE institutions (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(255) NOT NULL
); CREATE TABLE users (
   id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
   username VARCHAR(50) NOT NULL,
   role VARCHAR(50) NOT NULL,
   password VARCHAR(255) NOT NULL,
   created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
   enabled tinyint(1) UNSIGNED NOT NULL DEFAULT "1",
   data_id int(10),
   connected_person int(10)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
CREATE TABLE user_sessions (
   session_id varchar(255) NOT NULL,
   user_id int(10) UNSIGNED NOT NULL,
   login_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
);'
mysql -u root -p -e "$createdb $use $create_a $create_b $create_c"