1ALTER TABLE records ADD disabled BOOL DEFAULT 0;
2ALTER TABLE records ADD ordername VARCHAR(255);
3ALTER TABLE records ADD auth BOOL DEFAULT 1;
4
5CREATE INDEX orderindex ON records(ordername);
6
7
8CREATE TABLE domainmetadata (
9  id                    INTEGER PRIMARY KEY,
10  domain_id             INT NOT NULL,
11  kind                  VARCHAR(32) COLLATE NOCASE,
12  content               TEXT
13);
14
15CREATE INDEX domainmetaidindex on domainmetadata(domain_id);
16
17
18CREATE TABLE cryptokeys (
19  id                    INTEGER PRIMARY KEY,
20  domain_id             INT NOT NULL,
21  flags                 INT NOT NULL,
22  active                BOOL,
23  content               TEXT
24);
25
26CREATE INDEX domainidindex ON cryptokeys(domain_id);
27
28
29CREATE TABLE tsigkeys (
30  id                    INTEGER PRIMARY KEY,
31  name                  VARCHAR(255) COLLATE NOCASE,
32  algorithm             VARCHAR(50) COLLATE NOCASE,
33  secret                VARCHAR(255)
34);
35
36CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
37
38
39CREATE TABLE comments (
40  id                    INTEGER PRIMARY KEY,
41  domain_id             INTEGER NOT NULL,
42  name                  VARCHAR(255) NOT NULL,
43  type                  VARCHAR(10) NOT NULL,
44  modified_at           INT NOT NULL,
45  account               VARCHAR(40) DEFAULT NULL,
46  comment               VARCHAR(65535) NOT NULL
47);
48
49CREATE INDEX comments_domain_id_index ON comments (domain_id);
50CREATE INDEX comments_nametype_index ON comments (name, type);
51CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
52
53
54BEGIN TRANSACTION;
55  CREATE TEMPORARY TABLE supermasters_backup (
56    ip                  VARCHAR(64) NOT NULL,
57    nameserver          VARCHAR(255) NOT NULL COLLATE NOCASE,
58    account             VARCHAR(40) DEFAULT NULL
59  );
60
61  INSERT INTO supermasters_backup SELECT ip, nameserver, account FROM supermasters;
62  UPDATE supermasters_backup SET account='' WHERE account IS NULL;
63  DROP TABLE supermasters;
64
65  CREATE TABLE supermasters (
66    ip                  VARCHAR(64) NOT NULL,
67    nameserver          VARCHAR(255) NOT NULL COLLATE NOCASE,
68    account             VARCHAR(40) NOT NULL
69  );
70  CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
71
72  INSERT INTO supermasters SELECT ip, nameserver, account FROM supermasters_backup;
73  DROP TABLE supermasters_backup;
74COMMIT;
75