summaryrefslogtreecommitdiff
path: root/server/migrations/1_initial_eyeballs.sql
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-12-31 12:24:46 +0100
committerJoel Klinghed <the_jk@spawned.biz>2024-12-31 12:24:46 +0100
commit4b1f7fec1cf9d427234ff5bded79a6d18d5c88ce (patch)
tree2d610e7f37b23193236ca323db4e77aa690b3d1a /server/migrations/1_initial_eyeballs.sql
parent48e199eff5fca8f5e4aa71a4091d3ae7acc82b9b (diff)
Rename migration so its actually picked up
Must be <version>_<description>.sql.
Diffstat (limited to 'server/migrations/1_initial_eyeballs.sql')
-rw-r--r--server/migrations/1_initial_eyeballs.sql67
1 files changed, 67 insertions, 0 deletions
diff --git a/server/migrations/1_initial_eyeballs.sql b/server/migrations/1_initial_eyeballs.sql
new file mode 100644
index 0000000..aeb1470
--- /dev/null
+++ b/server/migrations/1_initial_eyeballs.sql
@@ -0,0 +1,67 @@
+CREATE TABLE IF NOT EXISTS projects (
+ id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
+ title VARCHAR(1024) NOT NULL,
+ description MEDIUMTEXT NOT NULL DEFAULT ''
+);
+
+CREATE TABLE IF NOT EXISTS users (
+ id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
+ username VARCHAR(256) NOT NULL UNIQUE,
+ name VARCHAR(1024) NOT NULL DEFAULT '',
+ active BOOLEAN NOT NULL DEFAULT 1
+);
+
+CREATE TABLE IF NOT EXISTS project_users (
+ project BIGINT UNSIGNED NOT NULL,
+ user BIGINT UNSIGNED NOT NULL,
+ default_role TINYINT UNSIGNED NOT NULL,
+ maintainer BOOLEAN NOT NULL DEFAULT 0,
+ PRIMARY KEY (project, user),
+
+ CONSTRAINT `fk_project_users_project`
+ FOREIGN KEY (project) REFERENCES projects (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT,
+
+ CONSTRAINT `fk_project_users_user`
+ FOREIGN KEY (user) REFERENCES users (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT
+);
+
+CREATE TABLE IF NOT EXISTS reviews (
+ id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ project BIGINT UNSIGNED NOT NULL,
+ owner BIGINT UNSIGNED NOT NULL,
+ title VARCHAR(1024) NOT NULL,
+ description MEDIUMTEXT NOT NULL DEFAULT '',
+ state TINYINT UNSIGNED NOT NULL DEFAULT 0,
+ progress FLOAT NOT NULL DEFAULT 0,
+
+ CONSTRAINT `fk_reviews_project`
+ FOREIGN KEY (project) REFERENCES projects (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT,
+
+ CONSTRAINT `fk_reviews_owner`
+ FOREIGN KEY (owner) REFERENCES users (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT
+);
+
+CREATE TABLE IF NOT EXISTS review_users (
+ review BIGINT UNSIGNED NOT NULL,
+ user BIGINT UNSIGNED NOT NULL,
+ role TINYINT UNSIGNED NOT NULL DEFAULT 0,
+ PRIMARY KEY (review, user),
+
+ CONSTRAINT `fk_review_users_review`
+ FOREIGN KEY (review) REFERENCES reviews (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT,
+
+ CONSTRAINT `fk_review_users_user`
+ FOREIGN KEY (user) REFERENCES users (id)
+ ON DELETE CASCADE
+ ON UPDATE RESTRICT
+);