diff options
Diffstat (limited to 'hosts')
-rw-r--r-- | hosts/surtr/postgresql.nix | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/hosts/surtr/postgresql.nix b/hosts/surtr/postgresql.nix index 510437aa..ca56f60c 100644 --- a/hosts/surtr/postgresql.nix +++ b/hosts/surtr/postgresql.nix | |||
@@ -28,18 +28,16 @@ in { | |||
28 | \i ${versioning + "/install.versioning.sql"} | 28 | \i ${versioning + "/install.versioning.sql"} |
29 | 29 | ||
30 | BEGIN; | 30 | BEGIN; |
31 | select _v.register_patch('000-base', null, null); | 31 | SELECT _v.register_patch('000-base', null, null); |
32 | 32 | ||
33 | create table virtual_mailbox ( | 33 | CREATE TABLE virtual_mailbox ( |
34 | id uuid PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(), | 34 | id uuid PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(), |
35 | local text, | 35 | local text CONSTRAINT local_non_empty CHECK (local IS DISTINCT FROM '''), |
36 | CHECK (local IS DISTINCT FROM '''), | 36 | domain text NOT NULL CONSTRAINT domain_non_empty CHECK (domain <> '''), |
37 | domain text NOT NULL, | 37 | mailbox text NOT NULL CONSTRAINT mailbox_non_empty CHECK (mailbox <> '''), |
38 | CHECK (domain <> '''), | 38 | CONSTRAINT local_domain_unique UNIQUE (local, domain) |
39 | mailbox text NOT NULL, | ||
40 | CHECK (mailbox <> '''), | ||
41 | UNIQUE(COALESCE(local, '''), domain) | ||
42 | ); | 39 | ); |
40 | CREATE UNIQUE INDEX domain_unique ON TABLE virtual_mailbox (domain) WHERE local IS NULL; | ||
43 | COMMIT; | 41 | COMMIT; |
44 | ''} | 42 | ''} |
45 | ''; | 43 | ''; |