# HG changeset patch # User martin f. krafft # Date 1333986302 -7200 # Node ID 492c179094c9fa5dd5600d24861c67f8ba7dc721 # Parent e1b32377032fd50ea04a0cd64c71090f90f83ebf Add database table for catchall destinations Catch-all aliases are stored for a domain. Since there can be multiple destinations per domain, this is done using a 1:n relation on the gid. This commit extends the SQL schema definition and also provides appropriate upgrade DDL. diff -r e1b32377032f -r 492c179094c9 pgsql/create_tables-dovecot-1.2.x.pgsql --- a/pgsql/create_tables-dovecot-1.2.x.pgsql Sun Apr 08 19:05:25 2012 +0000 +++ b/pgsql/create_tables-dovecot-1.2.x.pgsql Mon Apr 09 17:45:02 2012 +0200 @@ -173,6 +173,14 @@ REFERENCES domain_data (gid) ); +CREATE TABLE catchall ( + gid bigint NOT NULL, + destination varchar(320) NOT NULL, + CONSTRAINT pkey_catchall PRIMARY KEY (gid, destination), + CONSTRAINT fkey_catchall_gid_domain_data FOREIGN KEY (gid) + REFERENCES domain_data (gid) +); + CREATE OR REPLACE VIEW postfix_gid AS SELECT gid, domainname FROM domain_name; diff -r e1b32377032f -r 492c179094c9 pgsql/create_tables.pgsql --- a/pgsql/create_tables.pgsql Sun Apr 08 19:05:25 2012 +0000 +++ b/pgsql/create_tables.pgsql Mon Apr 09 17:45:02 2012 +0200 @@ -173,6 +173,14 @@ REFERENCES domain_data (gid) ); +CREATE TABLE catchall ( + gid bigint NOT NULL, + destination varchar(320) NOT NULL, + CONSTRAINT pkey_catchall PRIMARY KEY (gid, destination), + CONSTRAINT fkey_catchall_gid_domain_data FOREIGN KEY (gid) + REFERENCES domain_data (gid) +); + CREATE OR REPLACE VIEW postfix_gid AS SELECT gid, domainname FROM domain_name; diff -r e1b32377032f -r 492c179094c9 pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql --- a/pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql Sun Apr 08 19:05:25 2012 +0000 +++ b/pgsql/update_tables_0.5.x-0.6-dovecot-1.2.x.pgsql Mon Apr 09 17:45:02 2012 +0200 @@ -165,6 +165,18 @@ FOREIGN KEY (ssid) REFERENCES service_set (ssid); -- --- +-- Catchall +-- --- + +CREATE TABLE catchall ( + gid bigint NOT NULL, + destination varchar(320) NOT NULL, + CONSTRAINT pkey_catchall PRIMARY KEY (gid, destination), + CONSTRAINT fkey_catchall_gid_domain_data FOREIGN KEY (gid) + REFERENCES domain_data (gid) +); + +-- --- -- Restore view -- --- CREATE VIEW vmm_domain_info AS diff -r e1b32377032f -r 492c179094c9 pgsql/update_tables_0.5.x-0.6.pgsql --- a/pgsql/update_tables_0.5.x-0.6.pgsql Sun Apr 08 19:05:25 2012 +0000 +++ b/pgsql/update_tables_0.5.x-0.6.pgsql Mon Apr 09 17:45:02 2012 +0200 @@ -143,6 +143,18 @@ FOREIGN KEY (ssid) REFERENCES service_set (ssid); -- --- +-- Catchall +-- --- + +CREATE TABLE catchall ( + gid bigint NOT NULL, + destination varchar(320) NOT NULL, + CONSTRAINT pkey_catchall PRIMARY KEY (gid, destination), + CONSTRAINT fkey_catchall_gid_domain_data FOREIGN KEY (gid) + REFERENCES domain_data (gid) +); + +-- --- -- Restore view -- --- CREATE VIEW vmm_domain_info AS