dienstplancreator git · main
git clone https://git.christianimmanuel.de/tools/dienstplancreator.gitwget https://git.christianimmanuel.de/tools/dienstplancreator/archive/dienstplancreator.tar.gzcreateDataDienstplanDB.sh 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"