]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
schema change upgrade notes
authorKees Monshouwer <mind04@monshouwer.org>
Mon, 10 Mar 2014 19:04:57 +0000 (20:04 +0100)
committermind04 <mind04@monshouwer.org>
Mon, 10 Mar 2014 19:04:57 +0000 (20:04 +0100)
modules/gmysqlbackend/nodnssec-3.x_to_3.4_schema.mysql.sql
modules/gmysqlbackend/schema.mysql.sql
modules/gpgsqlbackend/nodnssec-3.x_to_3.4_schema.pgsql.sql
modules/gpgsqlbackend/schema.pgsql.sql
modules/gsqlite3backend/nodnssec-3.x_to_3.4_schema.sqlite3.sql
modules/gsqlite3backend/schema.sqlite3.sql
pdns/docs/pdns.xml

index 2e60c9b2388c81063636608da412725717d48fa7..a34aca990d0a129f5fc5ff42655dbc9ac1b8640f 100644 (file)
@@ -6,7 +6,6 @@ ALTER TABLE records CHANGE COLUMN type TYPE VARCHAR(10);
 CREATE INDEX recordorder ON records (domain_id, ordername);
 
 
-
 CREATE TABLE domainmetadata (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
@@ -18,7 +17,6 @@ CREATE TABLE domainmetadata (
 CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
 
 
-
 CREATE TABLE cryptokeys (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
@@ -31,7 +29,6 @@ CREATE TABLE cryptokeys (
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
-
 CREATE TABLE tsigkeys (
   id                    INT AUTO_INCREMENT,
   name                  VARCHAR(255),
@@ -43,7 +40,6 @@ CREATE TABLE tsigkeys (
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 
 
-
 CREATE TABLE comments (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
index eb692b3d0a8e836af9c2d75891f0b373ba03be2e..27afa2b0f9bf6e13f93e7133c7af4ec984d60218 100644 (file)
@@ -12,7 +12,6 @@ create table domains (
 CREATE UNIQUE INDEX name_index ON domains(name);
 
 
-
 CREATE TABLE records (
   id                    INT AUTO_INCREMENT,
   domain_id             INT DEFAULT NULL,
@@ -33,7 +32,6 @@ CREATE INDEX domain_id ON records(domain_id);
 CREATE INDEX recordorder ON records (domain_id, ordername);
 
 
-
 CREATE TABLE supermasters (
   ip                    VARCHAR(64) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
@@ -42,7 +40,6 @@ CREATE TABLE supermasters (
 ) Engine=InnoDB;
 
 
-
 CREATE TABLE comments (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
@@ -59,7 +56,6 @@ CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 
 
-
 CREATE TABLE domainmetadata (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
@@ -71,7 +67,6 @@ CREATE TABLE domainmetadata (
 CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
 
 
-
 CREATE TABLE cryptokeys (
   id                    INT AUTO_INCREMENT,
   domain_id             INT NOT NULL,
@@ -84,7 +79,6 @@ CREATE TABLE cryptokeys (
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
-
 CREATE TABLE tsigkeys (
   id                    INT AUTO_INCREMENT,
   name                  VARCHAR(255),
index 1467150c07dd607cb71aa49fd87d1a38b39d1964..041d55cb2884fa8febe1ec31c40544b5ebe804be 100644 (file)
@@ -6,7 +6,6 @@ ALTER table records ALTER COLUMN type TYPE VARCHAR(10);
 CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
 
 
-
 CREATE TABLE domainmetadata (
  id                     SERIAL PRIMARY KEY,
  domain_id              INT REFERENCES domains(id) ON DELETE CASCADE,
@@ -17,7 +16,6 @@ CREATE TABLE domainmetadata (
 CREATE INDEX domainidmetaindex ON domainmetadata(domain_id);
 
 
-
 CREATE TABLE cryptokeys (
  id                     SERIAL PRIMARY KEY,
  domain_id              INT REFERENCES domains(id) ON DELETE CASCADE,
@@ -29,7 +27,6 @@ CREATE TABLE cryptokeys (
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
-
 CREATE TABLE tsigkeys (
  id                     SERIAL PRIMARY KEY,
  name                   VARCHAR(255),
@@ -41,7 +38,6 @@ CREATE TABLE tsigkeys (
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 
 
-
 CREATE TABLE comments (
   id                    SERIAL PRIMARY KEY,
   domain_id             INT NOT NULL,
index eecc63e63e2ae751e0bd12202c5b935cd83254eb..3423e8df0dcfdf71e844d275bf79f258b8ddbc49 100644 (file)
@@ -36,7 +36,6 @@ CREATE INDEX domain_id ON records(domain_id);
 CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
 
 
-
 CREATE TABLE supermasters (
   ip                    INET NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
@@ -45,7 +44,6 @@ CREATE TABLE supermasters (
 );
 
 
-
 CREATE TABLE comments (
   id                    SERIAL PRIMARY KEY,
   domain_id             INT NOT NULL,
@@ -65,7 +63,6 @@ CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 
 
-
 CREATE TABLE domainmetadata (
   id                    SERIAL PRIMARY KEY,
   domain_id             INT REFERENCES domains(id) ON DELETE CASCADE,
@@ -76,7 +73,6 @@ CREATE TABLE domainmetadata (
 CREATE INDEX domainidmetaindex ON domainmetadata(domain_id);
 
 
-
 CREATE TABLE cryptokeys (
   id                    SERIAL PRIMARY KEY,
   domain_id             INT REFERENCES domains(id) ON DELETE CASCADE,
@@ -88,7 +84,6 @@ CREATE TABLE cryptokeys (
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
-
 CREATE TABLE tsigkeys (
   id                    SERIAL PRIMARY KEY,
   name                  VARCHAR(255),
index 3c09dfe8b64f85241e880a9ddd4976c53352b1e3..87abeb48a5c1ca1944940f73e52b3523e230243f 100644 (file)
@@ -5,7 +5,6 @@ ALTER TABLE records ADD auth BOOL DEFAULT 1;
 CREATE INDEX orderindex ON records(ordername);
 
 
-
 CREATE TABLE domainmetadata (
   id                    INTEGER PRIMARY KEY,
   domain_id             INT NOT NULL,
@@ -16,7 +15,6 @@ CREATE TABLE domainmetadata (
 CREATE INDEX domainmetaidindex on domainmetadata(domain_id);
 
 
-
 CREATE TABLE cryptokeys (
   id                    INTEGER PRIMARY KEY,
   domain_id             INT NOT NULL,
@@ -28,7 +26,6 @@ CREATE TABLE cryptokeys (
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
-
 CREATE TABLE tsigkeys (
   id                    INTEGER PRIMARY KEY,
   name                  VARCHAR(255) COLLATE NOCASE,
@@ -39,7 +36,6 @@ CREATE TABLE tsigkeys (
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 
 
-
 CREATE TABLE comments (
   id                    INTEGER PRIMARY KEY,
   domain_id             INTEGER NOT NULL,
index 8164199bc82d32d8739595804fc9a293bacd1bb1..fbc0850faf891221cc5cb1f2ceb3f736bdefa3d4 100644 (file)
@@ -11,7 +11,6 @@ CREATE TABLE domains (
 CREATE UNIQUE INDEX name_index ON domains(name);
 
 
-
 CREATE TABLE records (
   id                    INTEGER PRIMARY KEY,
   domain_id             INTEGER DEFAULT NULL,
@@ -32,7 +31,6 @@ CREATE INDEX domain_id ON records(domain_id);
 CREATE INDEX orderindex ON records(ordername);
 
 
-
 CREATE TABLE supermasters (
   ip                    VARCHAR(64) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL COLLATE NOCASE,
@@ -42,7 +40,6 @@ CREATE TABLE supermasters (
 CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
 
 
-
 CREATE TABLE comments (
   id                    INTEGER PRIMARY KEY,
   domain_id             INTEGER NOT NULL,
@@ -58,7 +55,6 @@ CREATE INDEX comments_nametype_index ON comments (name, type);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 
 
-
 CREATE TABLE domainmetadata (
  id                     INTEGER PRIMARY KEY,
  domain_id              INT NOT NULL,
@@ -69,7 +65,6 @@ CREATE TABLE domainmetadata (
 CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
 
 
-
 CREATE TABLE cryptokeys (
  id                     INTEGER PRIMARY KEY,
  domain_id              INT NOT NULL,
@@ -81,7 +76,6 @@ CREATE TABLE cryptokeys (
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
-
 CREATE TABLE tsigkeys (
  id                     INTEGER PRIMARY KEY,
  name                   VARCHAR(255) COLLATE NOCASE,
index 1a65d4c9ad193568c1279e23eb25140c08993b31..67d8d478a4f9a66b79e5e76e4fbe50007e76bbf5 100644 (file)
@@ -12444,27 +12444,139 @@ create index recordorder on records (domain_id, ordername text_pattern_ops);
       </para>
     </note>
     <para>
-      A GSQL Backend schema change is necessary for new features.
-      For MySQL:
+      <warning>
+        <para>
+          The default database schema has changed. The database update below is mandatory.
+        </para>
+        <para>
+          If custom queries are in use, they probably need an update.
+        </para>
+      </warning>
+    </para>
+    <para>
+      For gmysql backend with nodnssec schema:
+      <programlisting><xi:include  href="../../modules/gmysqlbackend/nodnssec-3.x_to_3.4_schema.mysql.sql"  parse="text"  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
+      For gmysql backend with dnssec schema:
       <screen>
 ALTER TABLE records ADD disabled BOOLEAN DEFAULT 0;
-</screen>
-      For PostgreSQL:
+ALTER TABLE records MODIFY auth BOOLEAN DEFAULT 1;
+
+
+CREATE TABLE comments (
+  id                    INT AUTO_INCREMENT,
+  domain_id             INT NOT NULL,
+  name                  VARCHAR(255) NOT NULL,
+  type                  VARCHAR(10) NOT NULL,
+  modified_at           INT NOT NULL,
+  account               VARCHAR(40) NOT NULL,
+  comment               VARCHAR(64000) NOT NULL,
+  PRIMARY KEY(id)
+) Engine=InnoDB;
+
+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);
+      </screen>
+      For gpgsql backend with nodnssec schema:
+      <programlisting><xi:include  href="../../modules/gpgsqlbackend/nodnssec-3.x_to_3.4_schema.pgsql.sql"  parse="text"  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
+      For gpgsql backend with dnssec schema:
       <screen>
 ALTER TABLE records ADD disabled BOOLEAN DEFAULT 'f';
-</screen>
-      For SQLite 3:
+ALTER TABLE records ALTER COLUMN auth SET DEFAULT 't';
+
+
+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);
+      </screen>
+      For gsqlite3 backend with nodnssec schema:
+      <programlisting><xi:include  href="../../modules/gsqlite3backend/nodnssec-3.x_to_3.4_schema.sqlite3.sql"  parse="text"  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
+      For gsqlite3 backend with dnssec schema:
       <screen>
-ALTER TABLE records ADD disabled BOOLEAN DEFAULT 0;
-</screen>
-      For Oracle:
+BEGIN TRANSACTION;
+
+CREATE TEMPORARY TABLE records_backup(
+  id                    INTEGER PRIMARY KEY,
+  domain_id             INTEGER DEFAULT NULL,
+  name                  VARCHAR(255) DEFAULT NULL,
+  type                  VARCHAR(10) DEFAULT NULL,
+  content               VARCHAR(65535) DEFAULT NULL,
+  ttl                   INTEGER DEFAULT NULL,
+  prio                  INTEGER DEFAULT NULL,
+  change_date           INTEGER DEFAULT NULL,
+  ordername             VARCHAR(255),
+  auth                  BOOL DEFAULT 0
+);
+
+INSERT INTO records_backup SELECT id,domain_id,name,type,content,ttl,prio,change_date,ordername,auth FROM records;
+
+DROP TABLE records;
+
+CREATE TABLE records (
+  id                    INTEGER PRIMARY KEY,
+  domain_id             INTEGER DEFAULT NULL,
+  name                  VARCHAR(255) DEFAULT NULL,
+  type                  VARCHAR(10) DEFAULT NULL,
+  content               VARCHAR(65535) DEFAULT NULL,
+  ttl                   INTEGER DEFAULT NULL,
+  prio                  INTEGER DEFAULT NULL,
+  change_date           INTEGER DEFAULT NULL,
+  disabled              BOOLEAN DEFAULT 0,
+  ordername             VARCHAR(255),
+  auth                  BOOL DEFAULT 1
+);
+
+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 orderindex ON records(ordername);
+
+INSERT INTO records SELECT id,domain_id,name,type,content,ttl,prio,change_date,0,ordername,auth FROM records_backup;
+
+DROP TABLE records_backup;
+
+COMMIT;
+
+
+CREATE TABLE comments (
+  id                    INTEGER PRIMARY KEY,
+  domain_id             INTEGER 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
+);
+
+CREATE INDEX comments_domain_id_index ON comments (domain_id);
+CREATE INDEX comments_nametype_index ON comments (name, type);
+CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
+      </screen>
+      For goracle backend:
       <screen>
 ALTER TABLE records ADD disabled INT DEFAULT 0;
-</screen>
+ALTER TABLE records MODIFY auth INT DEFAULT 1;
+
+UPDATE records SET auth=1 WHERE auth IS NULL;
+      </screen>
     </para>
   </sect1>
-
   </chapter>
+
   <chapter id="powerdnssec-auth">
   <title>Serving authoritative DNSSEC data</title>
   <para>