From 7c10ac3f12a959c76d120f022c12d1a98ddb7aee Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Thu, 2 Nov 2017 14:12:32 +0100 Subject: [PATCH] Adding dns/schema.pgsql.sql --- dns/schema.pgsql.sql | 129 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 dns/schema.pgsql.sql diff --git a/dns/schema.pgsql.sql b/dns/schema.pgsql.sql new file mode 100644 index 0000000..5694232 --- /dev/null +++ b/dns/schema.pgsql.sql @@ -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; -- 2.39.5