Splitting migration scripts
This commit is contained in:
parent
f9eb67da11
commit
3ba446be5b
6 changed files with 44 additions and 50 deletions
|
@ -1,50 +0,0 @@
|
||||||
PRAGMA foreign_keys = ON;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS users (
|
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
username VARCHAR(255) NOT NULL,
|
|
||||||
password VARCHAR(255) NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS projects (
|
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
name VARCHAR(255) NOT NULL,
|
|
||||||
description TEXT NOT NULL,
|
|
||||||
user_id INTEGER NOT NULL,
|
|
||||||
FOREIGN KEY (user_id) REFERENCES users (id)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS time_reports (
|
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
project_id INTEGER NOT NULL,
|
|
||||||
start DATETIME NOT NULL,
|
|
||||||
end DATETIME NOT NULL,
|
|
||||||
FOREIGN KEY (project_id) REFERENCES projects (id)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TRIGGER IF NOT EXISTS time_reports_start_before_end
|
|
||||||
BEFORE INSERT ON time_reports
|
|
||||||
FOR EACH ROW
|
|
||||||
BEGIN
|
|
||||||
SELECT
|
|
||||||
CASE
|
|
||||||
WHEN NEW.start >= NEW.end THEN
|
|
||||||
RAISE (ABORT, 'start must be before end')
|
|
||||||
END;
|
|
||||||
END;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS report_collection (
|
|
||||||
id INTEGER PRIMARY KEY,
|
|
||||||
project_id INTEGER NOT NULL,
|
|
||||||
date DATE NOT NULL,
|
|
||||||
signed_by INTEGER, -- NULL if not signed
|
|
||||||
FOREIGN KEY (signed_by) REFERENCES users (id)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS user_roles (
|
|
||||||
user_id INTEGER NOT NULL,
|
|
||||||
project_id INTEGER NOT NULL,
|
|
||||||
role STRING NOT NULL,
|
|
||||||
FOREIGN KEY (user_id) REFERENCES users (id)
|
|
||||||
FOREIGN KEY (project_id) REFERENCES projects (id)
|
|
||||||
);
|
|
5
backend/migrations/0010_users.sql
Normal file
5
backend/migrations/0010_users.sql
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
username VARCHAR(255) NOT NULL,
|
||||||
|
password VARCHAR(255) NOT NULL
|
||||||
|
);
|
7
backend/migrations/0020_projects.sql
Normal file
7
backend/migrations/0020_projects.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS projects (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
user_id INTEGER NOT NULL,
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
||||||
|
);
|
18
backend/migrations/0030_time_reports.sql
Normal file
18
backend/migrations/0030_time_reports.sql
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS time_reports (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
project_id INTEGER NOT NULL,
|
||||||
|
start DATETIME NOT NULL,
|
||||||
|
end DATETIME NOT NULL,
|
||||||
|
FOREIGN KEY (project_id) REFERENCES projects (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TRIGGER IF NOT EXISTS time_reports_start_before_end
|
||||||
|
BEFORE INSERT ON time_reports
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
SELECT
|
||||||
|
CASE
|
||||||
|
WHEN NEW.start >= NEW.end THEN
|
||||||
|
RAISE (ABORT, 'start must be before end')
|
||||||
|
END;
|
||||||
|
END;
|
7
backend/migrations/0040_time_report_collections.sql
Normal file
7
backend/migrations/0040_time_report_collections.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS user_roles (
|
||||||
|
user_id INTEGER NOT NULL,
|
||||||
|
project_id INTEGER NOT NULL,
|
||||||
|
role STRING NOT NULL,
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
||||||
|
FOREIGN KEY (project_id) REFERENCES projects (id)
|
||||||
|
);
|
7
backend/migrations/0050_user_roles.sql
Normal file
7
backend/migrations/0050_user_roles.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS user_roles (
|
||||||
|
user_id INTEGER NOT NULL,
|
||||||
|
project_id INTEGER NOT NULL,
|
||||||
|
role STRING NOT NULL,
|
||||||
|
FOREIGN KEY (user_id) REFERENCES users (id)
|
||||||
|
FOREIGN KEY (project_id) REFERENCES projects (id)
|
||||||
|
);
|
Loading…
Reference in a new issue