Allow multiple virtual_aliases mappings for the same source
This commit is contained in:
parent
80cc5a55fe
commit
edfaf0e066
1 changed files with 3 additions and 2 deletions
|
@ -24,14 +24,15 @@ INSERT INTO virtual_users (domain_id, email, password, quota) VALUES (
|
||||||
CREATE TABLE IF NOT EXISTS virtual_aliases (
|
CREATE TABLE IF NOT EXISTS virtual_aliases (
|
||||||
id integer primary key generated by default as identity,
|
id integer primary key generated by default as identity,
|
||||||
domain_id integer NOT NULL,
|
domain_id integer NOT NULL,
|
||||||
source varchar(254) NOT NULL UNIQUE,
|
source varchar(254) NOT NULL,
|
||||||
destination varchar(254) NOT NULL,
|
destination varchar(254) NOT NULL,
|
||||||
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
|
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS virtual_aliases_s_d_key ON virtual_aliases (source, destination);
|
||||||
{% for alias in mailserver_database.virtual_aliases %}
|
{% for alias in mailserver_database.virtual_aliases %}
|
||||||
INSERT INTO virtual_aliases (domain_id, source, destination) VALUES (
|
INSERT INTO virtual_aliases (domain_id, source, destination) VALUES (
|
||||||
(SELECT id FROM virtual_domains WHERE name = '{{ virtual_domain }}'),
|
(SELECT id FROM virtual_domains WHERE name = '{{ virtual_domain }}'),
|
||||||
'{{ alias.source }}@{{ virtual_domain }}',
|
'{{ alias.source }}@{{ virtual_domain }}',
|
||||||
'{{ alias.destination }}@{{ virtual_domain }}'
|
'{{ alias.destination }}@{{ virtual_domain }}'
|
||||||
) ON CONFLICT (source) DO UPDATE SET destination = EXCLUDED.destination;
|
) ON CONFLICT (source, destination) DO NOTHING;
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
Loading…
Reference in a new issue