diff --git a/roles/mailserver_database/files/tables.sql b/roles/mailserver_database/files/tables.sql index 5c3eacb..4e120f0 100644 --- a/roles/mailserver_database/files/tables.sql +++ b/roles/mailserver_database/files/tables.sql @@ -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