max/max/db/schema.sql
Finn Stutzenstein add153d8a6 More work
2022-01-22 18:37:56 +01:00

34 lines
952 B
SQL

CREATE TABLE IF NOT EXISTS domains (
name varchar PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS emails (
id serial PRIMARY KEY,
email varchar(255) NOT NULL UNIQUE
);
CREATE TABLE IF NOT EXISTS users (
id serial PRIMARY KEY,
email_id integer REFERENCES emails(id) ON DELETE RESTRICT NOT NULL UNIQUE,
passwordhash varchar(255) NOT NULL,
enabled boolean NOT NULL DEFAULT TRUE,
is_admin boolean NOT NULL DEFAULT FALSE,
note text NOT NULL DEFAULT ''
);
CREATE TABLE IF NOT EXISTS aliases (
id serial PRIMARY KEY,
source_email_id integer REFERENCES emails(id) ON DELETE RESTRICT NOT NULL,
destination_user_id integer REFERENCES users(id) ON DELETE RESTRICT NOT NULL,
enabled boolean NOT NULL DEFAULT TRUE,
note text,
UNIQUE(source_email_id, destination_user_id)
);
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM domains) THEN
INSERT INTO domains (name) VALUES ('finn.st');
END IF;
END$$;