From: Kees Monshouwer Date: Thu, 10 Apr 2014 22:32:30 +0000 (+0200) Subject: gmysql schema update improvements X-Git-Tag: rec-3.6.0-rc1~65^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1c5dd631eebc1398ec1d8c51addc8e0af28f389;p=thirdparty%2Fpdns.git gmysql schema update improvements --- diff --git a/modules/gmysqlbackend/Makefile.am b/modules/gmysqlbackend/Makefile.am index c5e48e494f..5a8dbf0071 100644 --- a/modules/gmysqlbackend/Makefile.am +++ b/modules/gmysqlbackend/Makefile.am @@ -2,7 +2,7 @@ AM_CPPFLAGS=@MYSQL_inc@ @THREADFLAGS@ $(BOOST_CPPFLAGS) lib_LTLIBRARIES = libgmysqlbackend.la EXTRA_DIST=OBJECTFILES OBJECTLIBS \ - schema.mysql.sql nodnssec-3.x_to_3.4_schema.mysql.sql + schema.mysql.sql nodnssec-3.x_to_3.4_schema.mysql.sql dnssec-3.x_to_3.4_schema.mysql.sql libgmysqlbackend_la_SOURCES=gmysqlbackend.cc gmysqlbackend.hh \ smysql.hh smysql.cc diff --git a/modules/gmysqlbackend/dnssec-3.x_to_3.4_schema.mysql.sql b/modules/gmysqlbackend/dnssec-3.x_to_3.4_schema.mysql.sql new file mode 100644 index 0000000000..a14ea8a604 --- /dev/null +++ b/modules/gmysqlbackend/dnssec-3.x_to_3.4_schema.mysql.sql @@ -0,0 +1,28 @@ +/* Uncomment next 2 lines for versions <= 3.1 */ +/* DROP INDEX rec_name_index ON records; */ +/* DROP INDEX orderindex ON records; */ + +ALTER TABLE records ADD disabled TINYINT(1) DEFAULT 0 AFTER change_date; +ALTER TABLE records MODIFY ordername VARCHAR(255) BINARY DEFAULT NULL; +ALTER TABLE records MODIFY auth TINYINT(1) DEFAULT 1; +ALTER TABLE records MODIFY type VARCHAR(10); +ALTER TABLE supermasters MODIFY ip VARCHAR(64) NOT NULL; +ALTER TABLE supermasters ADD PRIMARY KEY(ip, nameserver); + +CREATE INDEX recordorder ON records (domain_id, ordername); + + +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); diff --git a/modules/gmysqlbackend/nodnssec-3.x_to_3.4_schema.mysql.sql b/modules/gmysqlbackend/nodnssec-3.x_to_3.4_schema.mysql.sql index 5852d9d3a8..7199ea95c9 100644 --- a/modules/gmysqlbackend/nodnssec-3.x_to_3.4_schema.mysql.sql +++ b/modules/gmysqlbackend/nodnssec-3.x_to_3.4_schema.mysql.sql @@ -1,8 +1,11 @@ -ALTER TABLE domains CHANGE COLUMN type TYPE VARCHAR(6); +/* Uncomment next line for versions <= 3.1 */ +/* DROP INDEX rec_name_index ON records; */ + ALTER TABLE records ADD disabled TINYINT(1) DEFAULT 0; ALTER TABLE records ADD ordername VARCHAR(255) BINARY DEFAULT NULL; ALTER TABLE records ADD auth TINYINT(1) DEFAULT 1; -ALTER TABLE records CHANGE COLUMN type TYPE VARCHAR(10); +ALTER TABLE records MODIFY type VARCHAR(10); +ALTER TABLE supermasters MODIFY ip VARCHAR(64) NOT NULL; ALTER TABLE supermasters ADD PRIMARY KEY(ip, nameserver); CREATE INDEX recordorder ON records (domain_id, ordername); diff --git a/modules/gmysqlbackend/schema.mysql.sql b/modules/gmysqlbackend/schema.mysql.sql index 27afa2b0f9..63e3ebfa72 100644 --- a/modules/gmysqlbackend/schema.mysql.sql +++ b/modules/gmysqlbackend/schema.mysql.sql @@ -1,9 +1,9 @@ -create table domains ( +CREATE TABLE domains ( id INT AUTO_INCREMENT, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, - type VARCHAR(10) NOT NULL, + type VARCHAR(6) NOT NULL, notified_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, PRIMARY KEY (id) @@ -48,7 +48,7 @@ CREATE TABLE comments ( modified_at INT NOT NULL, account VARCHAR(40) NOT NULL, comment VARCHAR(64000) NOT NULL, - primary key(id) + PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX comments_domain_id_idx ON comments (domain_id); diff --git a/pdns/docs/pdns.xml b/pdns/docs/pdns.xml index 7321dc2d18..affd0d2e82 100644 --- a/pdns/docs/pdns.xml +++ b/pdns/docs/pdns.xml @@ -12457,26 +12457,7 @@ create index recordorder on records (domain_id, ordername text_pattern_ops); For gmysql backend with nodnssec schema: For gmysql backend with dnssec schema: - -ALTER TABLE records ADD disabled BOOLEAN DEFAULT 0; -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); - + For gpgsql backend with nodnssec schema: For gpgsql backend with dnssec schema: