]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Adding dns/schema.pgsql.sql
authorFrank Brehm <frank.brehm@pixelpark.com>
Thu, 2 Nov 2017 13:12:32 +0000 (14:12 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Thu, 2 Nov 2017 13:12:32 +0000 (14:12 +0100)
dns/schema.pgsql.sql [new file with mode: 0644]

diff --git a/dns/schema.pgsql.sql b/dns/schema.pgsql.sql
new file mode 100644 (file)
index 0000000..5694232
--- /dev/null
@@ -0,0 +1,129 @@
+
+CREATE DATABASE pdns WITH ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
+CREATE DATABASE pdnsadm WITH ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';
+
+BEGIN WORK;
+
+CREATE USER pdns WITH PASSWORD 'oo?fah7gai7X';
+GRANT ALL ON DATABASE "pdns" TO pdns;
+ALTER DATABASE pdns OWNER TO pdns;
+
+CREATE USER pdnsadm WITH PASSWORD 'Eig}o3ojoh@w';
+GRANT ALL ON DATABASE "pdnsadm" TO pdnsadm;
+ALTER DATABASE pdnsadm OWNER TO pdnsadm;
+
+COMMIT;
+
+BEGIN WORK;
+
+CREATE TABLE domains (
+  id                    SERIAL PRIMARY KEY,
+  name                  VARCHAR(255) NOT NULL,
+  master                VARCHAR(128) DEFAULT NULL,
+  last_check            INT DEFAULT NULL,
+  type                  VARCHAR(6) NOT NULL,
+  notified_serial       INT DEFAULT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE UNIQUE INDEX name_index ON domains(name);
+
+ALTER TABLE IF EXISTS domains OWNER TO pdns;
+ALTER SEQUENCE IF EXISTS domains_id_seq OWNER TO pdns;
+
+CREATE TABLE records (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT DEFAULT NULL,
+  name                  VARCHAR(255) DEFAULT NULL,
+  type                  VARCHAR(10) DEFAULT NULL,
+  content               VARCHAR(65535) DEFAULT NULL,
+  ttl                   INT DEFAULT NULL,
+  prio                  INT DEFAULT NULL,
+  change_date           INT DEFAULT NULL,
+  disabled              BOOL DEFAULT 'f',
+  ordername             VARCHAR(255),
+  auth                  BOOL DEFAULT 't',
+  CONSTRAINT domain_exists
+  FOREIGN KEY(domain_id) REFERENCES domains(id)
+  ON DELETE CASCADE,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE INDEX rec_name_index ON records(name);
+CREATE INDEX nametype_index ON records(name,type);
+CREATE INDEX domain_id ON records(domain_id);
+CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
+
+ALTER TABLE IF EXISTS records OWNER TO pdns;
+ALTER SEQUENCE IF EXISTS records_id_seq OWNER TO pdns;
+
+CREATE TABLE supermasters (
+  ip                    INET NOT NULL,
+  nameserver            VARCHAR(255) NOT NULL,
+  account               VARCHAR(40) NOT NULL,
+  PRIMARY KEY(ip, nameserver)
+);
+
+ALTER TABLE IF EXISTS supermasters OWNER TO pdns;
+
+CREATE TABLE comments (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) DEFAULT NULL,
+  comment               VARCHAR(65535) NOT NULL,
+  CONSTRAINT domain_exists
+  FOREIGN KEY(domain_id) REFERENCES domains(id)
+  ON DELETE CASCADE,
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE INDEX comments_domain_id_idx ON comments (domain_id);
+CREATE INDEX comments_name_type_idx ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
+
+ALTER TABLE IF EXISTS comments OWNER TO pdns;
+ALTER SEQUENCE IF EXISTS comments_id_seq OWNER TO pdns;
+
+CREATE TABLE domainmetadata (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT REFERENCES domains(id) ON DELETE CASCADE,
+  kind                  VARCHAR(32),
+  content               TEXT
+);
+
+CREATE INDEX domainidmetaindex ON domainmetadata(domain_id);
+
+ALTER TABLE IF EXISTS domainmetadata OWNER TO pdns;
+ALTER SEQUENCE IF EXISTS domainmetadata_id_seq OWNER TO pdns;
+
+CREATE TABLE cryptokeys (
+  id                    SERIAL PRIMARY KEY,
+  domain_id             INT REFERENCES domains(id) ON DELETE CASCADE,
+  flags                 INT NOT NULL,
+  active                BOOL,
+  content               TEXT
+);
+
+CREATE INDEX domainidindex ON cryptokeys(domain_id);
+
+ALTER TABLE IF EXISTS cryptokeys OWNER TO pdns;
+ALTER SEQUENCE IF EXISTS cryptokeys_id_seq OWNER TO pdns;
+
+CREATE TABLE tsigkeys (
+  id                    SERIAL PRIMARY KEY,
+  name                  VARCHAR(255),
+  algorithm             VARCHAR(50),
+  secret                VARCHAR(255),
+  CONSTRAINT c_lowercase_name CHECK (((name)::TEXT = LOWER((name)::TEXT)))
+);
+
+CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
+
+ALTER TABLE IF EXISTS tsigkeys OWNER TO pdns;
+ALTER SEQUENCE IF EXISTS tsigkeys_id_seq OWNER TO pdns;
+
+COMMIT;