Moved all migrations to 2 files for ease of dev
This commit is contained in:
parent
61ae1b1b53
commit
ce0153f801
|
@ -1,3 +0,0 @@
|
||||||
-- Add down migration script here
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS users;
|
|
|
@ -1,13 +0,0 @@
|
||||||
-- Add up migration script here
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS users (
|
|
||||||
id BIGSERIAL PRIMARY KEY,
|
|
||||||
email TEXT NOT NULL UNIQUE,
|
|
||||||
verified_email BOOLEAN NOT NULL,
|
|
||||||
username TEXT NOT NULL UNIQUE,
|
|
||||||
pw_hash TEXT NOT NULL,
|
|
||||||
pw_salt TEXT NOT NULL,
|
|
||||||
pfp_id BIGINT NOT NULL,
|
|
||||||
rank_id BIGINT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
-- Add down migration script here
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS sessions;
|
|
|
@ -1,8 +0,0 @@
|
||||||
-- Add up migration script here
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS sessions (
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
session_key TEXT NOT NULL UNIQUE,
|
|
||||||
expires BIGINT NOT NULL,
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
||||||
)
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS ranks;
|
|
|
@ -1,7 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS ranks (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
description TEXT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
modified_at BIGINT NOT NULL
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS awards;
|
|
|
@ -1,7 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS awards (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
description TEXT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
modified_at BIGINT NOT NULL
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS trainings;
|
|
|
@ -1,7 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS trainings (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
description TEXT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
modified_at BIGINT NOT NULL
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS missions;
|
|
|
@ -1,9 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS missions (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
description TEXT NOT NULL,
|
|
||||||
starting_at BIGINT NOT NULL,
|
|
||||||
estimated_length BIGINT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
modified_at BIGINT NOT NULL
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS qualifications;
|
|
|
@ -1,7 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS qualifications (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
description TEXT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
modified_at BIGINT NOT NULL
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS record_ranks;
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS records_ranks (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
rank_id BIGINT NOT NULL,
|
|
||||||
author_id BIGINT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
|
||||||
CONSTRAINT fk_rank FOREIGN KEY (rank_id) REFERENCES ranks(id) ON DELETE CASCADE
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS record_awards;
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS records_awards (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
award_id BIGINT NOT NULL,
|
|
||||||
author_id BIGINT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
|
||||||
CONSTRAINT fk_award FOREIGN KEY (award_id) REFERENCES awards(id) ON DELETE CASCADE
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS record_training;
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS records_trainings (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
training_id BIGINT NOT NULL,
|
|
||||||
author_id BIGINT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
|
||||||
CONSTRAINT fk_training FOREIGN KEY (training_id) REFERENCES trainings(id) ON DELETE CASCADE
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS record_qualifications;
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS records_qualifications (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
qualification_id BIGINT NOT NULL,
|
|
||||||
author_id BIGINT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
|
||||||
CONSTRAINT fk_qualification FOREIGN KEY (qualification_id) REFERENCES qualifications(id) ON DELETE CASCADE
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS records_missions;
|
|
|
@ -1,11 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS records_missions (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
mission_id BIGINT NOT NULL,
|
|
||||||
author_id BIGINT NOT NULL,
|
|
||||||
created_at BIGINT NOT NULL,
|
|
||||||
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
||||||
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
|
||||||
CONSTRAINT fk_mission FOREIGN KEY (mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
||||||
);
|
|
|
@ -1 +0,0 @@
|
||||||
DROP TABLE IF EXISTS attendance;
|
|
|
@ -1,10 +0,0 @@
|
||||||
CREATE TABLE IF NOT EXISTS attendance (
|
|
||||||
id BIGSERIAL PRIMARY KEY NOT NULL,
|
|
||||||
user_id BIGINT NOT NULL,
|
|
||||||
mission_id BIGINT NOT NULL,
|
|
||||||
confirmed_at BIGINT NOT NULL,
|
|
||||||
attending BOOL NOT NULL,
|
|
||||||
|
|
||||||
CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL,
|
|
||||||
CONSTRAINT fk_mission FOREIGN KEY (mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
|
||||||
);
|
|
14
migrations/20250914121222_main.down.sql
Normal file
14
migrations/20250914121222_main.down.sql
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
DROP TABLE IF EXISTS users;
|
||||||
|
DROP TABLE IF EXISTS sessions;
|
||||||
|
DROP TABLE IF EXISTS ranks;
|
||||||
|
DROP TABLE IF EXISTS awards;
|
||||||
|
DROP TABLE IF EXISTS trainings;
|
||||||
|
DROP TABLE IF EXISTS missions;
|
||||||
|
DROP TABLE IF EXISTS qualifications;
|
||||||
|
DROP TABLE IF EXISTS record_ranks;
|
||||||
|
DROP TABLE IF EXISTS record_awards;
|
||||||
|
DROP TABLE IF EXISTS record_training;
|
||||||
|
DROP TABLE IF EXISTS record_qualifications;
|
||||||
|
DROP TABLE IF EXISTS records_missions;
|
||||||
|
DROP TABLE IF EXISTS attendance;
|
||||||
|
DROP TABLE IF EXISTS roster_groups;
|
147
migrations/20250914121222_main.up.sql
Normal file
147
migrations/20250914121222_main.up.sql
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS users (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
email TEXT NOT NULL UNIQUE,
|
||||||
|
verified_email BOOLEAN NOT NULL,
|
||||||
|
username TEXT NOT NULL UNIQUE,
|
||||||
|
pw_hash TEXT NOT NULL,
|
||||||
|
pw_salt TEXT NOT NULL,
|
||||||
|
pfp_id BIGINT NOT NULL,
|
||||||
|
rank_id BIGINT NOT NULL,
|
||||||
|
group_id BIGINT NOT NULL
|
||||||
|
|
||||||
|
-- NOTE: Constraint added later to deal with circular dependency
|
||||||
|
-- CONSTRAINT fk_group FOREIGN KEY (group_id) REFERENCES roster_group(id)
|
||||||
|
-- CONSTRAINT fk_rank FOREIGN KEY (rank_id) REFERENCES ranks(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS sessions (
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
session_key TEXT NOT NULL UNIQUE,
|
||||||
|
expires BIGINT NOT NULL,
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS ranks (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
modified_at BIGINT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS awards (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
modified_at BIGINT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS trainings (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
modified_at BIGINT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS missions (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
starting_at BIGINT NOT NULL,
|
||||||
|
estimated_length BIGINT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
modified_at BIGINT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS qualifications (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
modified_at BIGINT NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS attendance (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
mission_id BIGINT NOT NULL,
|
||||||
|
confirmed_at BIGINT NOT NULL,
|
||||||
|
attending BOOL NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL,
|
||||||
|
CONSTRAINT fk_mission FOREIGN KEY(mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS roster_groups (
|
||||||
|
id BIGSERIAL NOT NULL PRIMARY KEY,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
sort_order BIGINT NOT NULL,
|
||||||
|
manager_id BIGINT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_manager FOREIGN KEY(manager_id) REFERENCES users(id) ON DELETE SET NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- NOTE: For table 'users'
|
||||||
|
ALTER TABLE users ADD FOREIGN KEY (group_id) REFERENCES roster_groups(id) ON DELETE SET NULL;
|
||||||
|
ALTER TABLE users ADD FOREIGN KEY (rank_id) REFERENCES ranks(id) ON DELETE SET NULL;
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
-- NOTE: Records
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS records_ranks (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
rank_id BIGINT NOT NULL,
|
||||||
|
author_id BIGINT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
||||||
|
CONSTRAINT fk_rank FOREIGN KEY (rank_id) REFERENCES ranks(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS records_awards (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
award_id BIGINT NOT NULL,
|
||||||
|
author_id BIGINT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
||||||
|
CONSTRAINT fk_award FOREIGN KEY (award_id) REFERENCES awards(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS records_trainings (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
training_id BIGINT NOT NULL,
|
||||||
|
author_id BIGINT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
||||||
|
CONSTRAINT fk_training FOREIGN KEY (training_id) REFERENCES trainings(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS records_qualifications (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
qualification_id BIGINT NOT NULL,
|
||||||
|
author_id BIGINT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
||||||
|
CONSTRAINT fk_qualification FOREIGN KEY (qualification_id) REFERENCES qualifications(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS records_missions (
|
||||||
|
id BIGSERIAL PRIMARY KEY NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
mission_id BIGINT NOT NULL,
|
||||||
|
author_id BIGINT NOT NULL,
|
||||||
|
created_at BIGINT NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT fk_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
|
||||||
|
CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES users(id) ON DELETE SET NULL,
|
||||||
|
CONSTRAINT fk_mission FOREIGN KEY (mission_id) REFERENCES missions(id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user