Various breaking changes to the database schema

This commit is contained in:
Imbus 2024-02-27 08:05:07 +01:00
parent 229ebc3a08
commit 9d6cddb724
5 changed files with 16 additions and 5 deletions

View file

@ -1,5 +1,9 @@
CREATE TABLE IF NOT EXISTS users ( CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
userId TEXT DEFAULT (HEX(RANDOMBLOB(4))) NOT NULL UNIQUE,
username VARCHAR(255) NOT NULL UNIQUE, username VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL password VARCHAR(255) NOT NULL
); );
CREATE INDEX IF NOT EXISTS users_username_index ON users (username);
CREATE INDEX IF NOT EXISTS users_userId_index ON users (userId);

View file

@ -1,7 +1,11 @@
CREATE TABLE IF NOT EXISTS projects ( CREATE TABLE IF NOT EXISTS projects (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
name VARCHAR(255) NOT NULL, projectId TEXT DEFAULT (HEX(RANDOMBLOB(4))) NOT NULL UNIQUE,
name VARCHAR(255) NOT NULL UNIQUE,
description TEXT NOT NULL, description TEXT NOT NULL,
user_id INTEGER NOT NULL, user_id INTEGER NOT NULL,
FOREIGN KEY (user_id) REFERENCES users (id) FOREIGN KEY (user_id) REFERENCES users (id)
); );
CREATE INDEX IF NOT EXISTS projects_projectId_index ON projects (projectId);
CREATE INDEX IF NOT EXISTS projects_user_id_index ON projects (user_id);

View file

@ -1,9 +1,10 @@
CREATE TABLE IF NOT EXISTS time_reports ( CREATE TABLE IF NOT EXISTS time_reports (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
reportId TEXT DEFAULT (HEX(RANDOMBLOB(6))) NOT NULL UNIQUE,
project_id INTEGER NOT NULL, project_id INTEGER NOT NULL,
start DATETIME NOT NULL, start DATETIME NOT NULL,
end DATETIME NOT NULL, end DATETIME NOT NULL,
FOREIGN KEY (project_id) REFERENCES projects (id) FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE
); );
CREATE TRIGGER IF NOT EXISTS time_reports_start_before_end CREATE TRIGGER IF NOT EXISTS time_reports_start_before_end

View file

@ -1,7 +1,9 @@
CREATE TABLE IF NOT EXISTS report_collection ( CREATE TABLE IF NOT EXISTS report_collection (
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
owner_id INTEGER NOT NULL,
project_id INTEGER NOT NULL, project_id INTEGER NOT NULL,
date DATE NOT NULL, date DATE NOT NULL,
signed_by INTEGER, -- NULL if not signed signed_by INTEGER, -- NULL if not signed
FOREIGN KEY (owner_id) REFERENCES users (id)
FOREIGN KEY (signed_by) REFERENCES users (id) FOREIGN KEY (signed_by) REFERENCES users (id)
); );

View file

@ -1,7 +1,7 @@
CREATE TABLE IF NOT EXISTS user_roles ( CREATE TABLE IF NOT EXISTS user_roles (
user_id INTEGER NOT NULL, user_id INTEGER NOT NULL,
project_id INTEGER NOT NULL, project_id INTEGER NOT NULL,
role STRING NOT NULL, role STRING NOT NULL, -- 'admin' or 'member'
FOREIGN KEY (user_id) REFERENCES users (id) FOREIGN KEY (user_id) REFERENCES users (id)
FOREIGN KEY (project_id) REFERENCES projects (id) FOREIGN KEY (project_id) REFERENCES projects (id)
); );