diff --git a/db/Dockerfile b/db/Dockerfile new file mode 100644 index 0000000..2307466 --- /dev/null +++ b/db/Dockerfile @@ -0,0 +1,3 @@ +FROM postgres:14 + +COPY db.sql /docker-entrypoint-initdb.d/ diff --git a/db/db.sql b/db/db.sql new file mode 100644 index 0000000..3469156 --- /dev/null +++ b/db/db.sql @@ -0,0 +1,35 @@ +CREATE TABLE IF NOT EXISTS users ( + id SERIAL PRIMARY KEY, + username VARCHAR(255) UNIQUE NOT NULL, + password VARCHAR(255) NOT NULL, + slug VARCHAR(255) UNIQUE NOT NULL, + external_tokens JSONB[] NOT NULL +); + +CREATE TABLE IF NOT EXISTS pipelines ( + id SERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL, + type VARCHAR(255) NOT NULL, + params JSONB NOT NULL, + user_id INTEGER NOT NULL, + enabled BOOLEAN NOT NULL, + error TEXT, + trigger_count INTEGER NOT NULL, + last_trigger TIMESTAMP, + CONSTRAINT fk_user + FOREIGN KEY (user_id) + REFERENCES users(id) + ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS reactions ( + id SERIAL PRIMARY KEY, + type VARCHAR(255) NOT NULL, + params JSONB NOT NULL, + pipeline_id INTEGER NOT NULL, + react_order INTEGER NOT NULL, + CONSTRAINT fk_pipeline + FOREIGN KEY (pipeline_id) + REFERENCES pipelines(id) + ON DELETE CASCADE +);