[mailserver_database tables] Add UNIQUE constraints and insert default data

This commit is contained in:
Tunui Franken 2024-01-12 19:50:14 +01:00
parent 74cdf27ad8
commit 96b171baab

View file

@ -1,23 +1,29 @@
CREATE TABLE IF NOT EXISTS virtual_domains (
id integer primary key generated by default as identity,
name varchar(50) NOT NULL
name varchar(50) NOT NULL UNIQUE
);
INSERT INTO virtual_domains (name) VALUES ('tunuifranken.info') ON CONFLICT (name) DO NOTHING;
CREATE TABLE IF NOT EXISTS virtual_users (
id integer primary key generated by default as identity,
domain_id integer NOT NULL,
email varchar(254) NOT NULL,
email varchar(254) NOT NULL UNIQUE,
password varchar(150) NOT NULL,
quota bigint NOT NULL DEFAULT 0,
UNIQUE (email),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id)
ON DELETE CASCADE
);
INSERT INTO virtual_users (domain_id, email, password, quota) VALUES (
(SELECT id FROM virtual_domains WHERE name = 'tunuifranken.info'),
'abuse@tunuifranken.info',
'foo',
0
) ON CONFLICT (email) DO UPDATE SET password = EXCLUDED.password, quota = EXCLUDED.quota;
CREATE TABLE IF NOT EXISTS virtual_aliases (
id integer primary key generated by default as identity,
domain_id integer NOT NULL,
source varchar(254) NOT NULL,
source varchar(254) NOT NULL UNIQUE,
destination varchar(254) NOT NULL,
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id)
ON DELETE CASCADE