123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- -- If tables are not dropped, have to truncate before insert or use "insert or replace" (not postgres compatible)
-
- DROP TABLE IF EXISTS "virtual_users";
- DROP TABLE IF EXISTS "virtual_aliases";
- DROP TABLE IF EXISTS "virtual_domains";
-
- CREATE TABLE IF NOT EXISTS "virtual_domains" (
- "id" SERIAL,
- "name" TEXT NOT NULL,
- PRIMARY KEY ("id")
- );
-
- CREATE UNIQUE INDEX name_idx ON virtual_domains (name);
-
- CREATE TABLE IF NOT EXISTS "virtual_users" (
- "id" SERIAL,
- "domain_id" int NOT NULL,
- "password" TEXT NOT NULL,
- "email" TEXT NOT NULL UNIQUE,
- PRIMARY KEY ("id"),
- FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
- );
-
-
- CREATE UNIQUE INDEX email_idx ON virtual_users (email);
-
- CREATE TABLE IF NOT EXISTS "virtual_aliases" (
- "id" SERIAL,
- "domain_id" int NOT NULL,
- "source" TEXT NOT NULL,
- "destination" TEXT NOT NULL,
- PRIMARY KEY ("id"),
- FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
- );
-
- CREATE INDEX source_idx ON virtual_aliases (source);
-
- {% for virtual_domain in virtual_domains %}
- INSERT INTO "virtual_domains" ("id", "name")
- VALUES ('{{ virtual_domain.pk_id }}', '{{ virtual_domain.name }}');
- {% endfor %}
-
- {% for virtual_user in mail_virtual_users %}
- INSERT INTO "virtual_users" ("domain_id", "password" , "email")
- VALUES (
- '{{ virtual_user.domain_pk_id }}',
- '{{ virtual_user.password | doveadm_pw_hash }}',
- '{{ virtual_user.account }}@{{ virtual_user.domain }}'
- );
- {% endfor %}
-
- {% if mail_virtual_aliases is defined %}
- {% for virtual_alias in mail_virtual_aliases %}
- INSERT INTO "virtual_aliases" ("domain_id", "source", "destination")
- VALUES ('{{ virtual_alias.domain_pk_id }}', '{{ virtual_alias.source }}', '{{virtual_alias.destination }}');
- {% endfor %}
- {% endif %}
|