]> git.ipfire.org Git - thirdparty/pdns.git/blob - modules/gsqlite3backend/schema.sqlite3.sql
4748a8dddbb28af1c779bad54203407e4f570ddc
[thirdparty/pdns.git] / modules / gsqlite3backend / schema.sqlite3.sql
1 PRAGMA foreign_keys = 1;
2
3 CREATE TABLE domains (
4 id INTEGER PRIMARY KEY,
5 name VARCHAR(255) NOT NULL COLLATE NOCASE,
6 master VARCHAR(128) DEFAULT NULL,
7 last_check INTEGER DEFAULT NULL,
8 type VARCHAR(6) NOT NULL,
9 notified_serial INTEGER DEFAULT NULL,
10 account VARCHAR(40) DEFAULT NULL
11 );
12
13 CREATE UNIQUE INDEX name_index ON domains(name);
14
15
16 CREATE TABLE records (
17 id INTEGER PRIMARY KEY,
18 domain_id INTEGER DEFAULT NULL,
19 name VARCHAR(255) DEFAULT NULL,
20 type VARCHAR(10) DEFAULT NULL,
21 content VARCHAR(65535) DEFAULT NULL,
22 ttl INTEGER DEFAULT NULL,
23 prio INTEGER DEFAULT NULL,
24 change_date INTEGER DEFAULT NULL,
25 disabled BOOLEAN DEFAULT 0,
26 ordername VARCHAR(255),
27 auth BOOL DEFAULT 1,
28 FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
29 );
30
31 CREATE INDEX rec_name_index ON records(name);
32 CREATE INDEX nametype_index ON records(name,type);
33 CREATE INDEX domain_id ON records(domain_id);
34 CREATE INDEX orderindex ON records(ordername);
35
36
37 CREATE TABLE supermasters (
38 ip VARCHAR(64) NOT NULL,
39 nameserver VARCHAR(255) NOT NULL COLLATE NOCASE,
40 account VARCHAR(40) NOT NULL
41 );
42
43 CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
44
45
46 CREATE TABLE comments (
47 id INTEGER PRIMARY KEY,
48 domain_id INTEGER NOT NULL,
49 name VARCHAR(255) NOT NULL,
50 type VARCHAR(10) NOT NULL,
51 modified_at INT NOT NULL,
52 account VARCHAR(40) DEFAULT NULL,
53 comment VARCHAR(65535) NOT NULL,
54 FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
55 );
56
57 CREATE INDEX comments_domain_id_index ON comments (domain_id);
58 CREATE INDEX comments_nametype_index ON comments (name, type);
59 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
60
61
62 CREATE TABLE domainmetadata (
63 id INTEGER PRIMARY KEY,
64 domain_id INT NOT NULL,
65 kind VARCHAR(32) COLLATE NOCASE,
66 content TEXT,
67 FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
68 );
69
70 CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
71
72
73 CREATE TABLE cryptokeys (
74 id INTEGER PRIMARY KEY,
75 domain_id INT NOT NULL,
76 flags INT NOT NULL,
77 active BOOL,
78 content TEXT,
79 FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
80 );
81
82 CREATE INDEX domainidindex ON cryptokeys(domain_id);
83
84
85 CREATE TABLE tsigkeys (
86 id INTEGER PRIMARY KEY,
87 name VARCHAR(255) COLLATE NOCASE,
88 algorithm VARCHAR(50) COLLATE NOCASE,
89 secret VARCHAR(255)
90 );
91
92 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);