</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>