34 lines
952 B
SQL
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$$;
|