From 2af952b486b3bd57e69eeecfed9cd25d6340a361 Mon Sep 17 00:00:00 2001 From: Kees Monshouwer Date: Sat, 21 Mar 2020 21:41:17 +0100 Subject: [PATCH] auth: improve sql schema updates --- .../4.2.0_to_4.3.0_schema.mysql.sql | 3 +-- .../4.3.0-beta2_to_4.3.0_schema.mysql.sql | 1 + .../4.2.0_to_4.3.0_schema.pgsql.sql | 9 ++++++++- .../4.3.0-beta2_to_4.3.0_schema.pgsql.sql | 6 ++++++ modules/gpgsqlbackend/schema.pgsql.sql | 2 +- .../4.2.0_to_4.3.0_schema.sqlite3.sql | 18 +++++++++++++++++- .../4.3.0-beta2_to_4.3.0_schema.sqlite3.sql | 17 +++++++++++++++++ ...nd-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql | 17 ++++++++++++++++- ...sec.4.3.0-beta2_to_4.3.0_schema.sqlite3.sql | 16 ++++++++++++++++ pdns/bind-dnssec.schema.sqlite3.sql | 2 +- 10 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 modules/gmysqlbackend/4.3.0-beta2_to_4.3.0_schema.mysql.sql create mode 100644 modules/gpgsqlbackend/4.3.0-beta2_to_4.3.0_schema.pgsql.sql create mode 100644 modules/gsqlite3backend/4.3.0-beta2_to_4.3.0_schema.sqlite3.sql create mode 100644 pdns/bind-dnssec.4.3.0-beta2_to_4.3.0_schema.sqlite3.sql diff --git a/modules/gmysqlbackend/4.2.0_to_4.3.0_schema.mysql.sql b/modules/gmysqlbackend/4.2.0_to_4.3.0_schema.mysql.sql index c1f6cadae02b..477760f4cde6 100644 --- a/modules/gmysqlbackend/4.2.0_to_4.3.0_schema.mysql.sql +++ b/modules/gmysqlbackend/4.2.0_to_4.3.0_schema.mysql.sql @@ -1,2 +1 @@ -ALTER TABLE cryptokeys ADD COLUMN published BOOL DEFAULT 1; - +ALTER TABLE cryptokeys ADD published BOOL NULL DEFAULT 1 AFTER active; diff --git a/modules/gmysqlbackend/4.3.0-beta2_to_4.3.0_schema.mysql.sql b/modules/gmysqlbackend/4.3.0-beta2_to_4.3.0_schema.mysql.sql new file mode 100644 index 000000000000..f84482254d7e --- /dev/null +++ b/modules/gmysqlbackend/4.3.0-beta2_to_4.3.0_schema.mysql.sql @@ -0,0 +1 @@ +ALTER TABLE cryptokeys MODIFY published BOOL NULL DEFAULT 1 AFTER active; diff --git a/modules/gpgsqlbackend/4.2.0_to_4.3.0_schema.pgsql.sql b/modules/gpgsqlbackend/4.2.0_to_4.3.0_schema.pgsql.sql index f9fa3a84f16b..02a27cdf3786 100644 --- a/modules/gpgsqlbackend/4.2.0_to_4.3.0_schema.pgsql.sql +++ b/modules/gpgsqlbackend/4.2.0_to_4.3.0_schema.pgsql.sql @@ -1 +1,8 @@ -ALTER TABLE cryptokeys ADD COLUMN published BOOL DEFAULT true; +BEGIN; + ALTER TABLE cryptokeys ADD COLUMN published BOOL DEFAULT TRUE; + + ALTER TABLE cryptokeys ADD COLUMN content_new TEXT; + UPDATE cryptokeys SET content_new = content; + ALTER TABLE cryptokeys DROP COLUMN content; + ALTER TABLE cryptokeys RENAME COLUMN content_new TO content; +COMMIT; diff --git a/modules/gpgsqlbackend/4.3.0-beta2_to_4.3.0_schema.pgsql.sql b/modules/gpgsqlbackend/4.3.0-beta2_to_4.3.0_schema.pgsql.sql new file mode 100644 index 000000000000..15228678ef4c --- /dev/null +++ b/modules/gpgsqlbackend/4.3.0-beta2_to_4.3.0_schema.pgsql.sql @@ -0,0 +1,6 @@ +BEGIN; + ALTER TABLE cryptokeys ADD COLUMN content_new TEXT; + UPDATE cryptokeys SET content_new = content; + ALTER TABLE cryptokeys DROP COLUMN content; + ALTER TABLE cryptokeys RENAME COLUMN content_new TO content; +COMMIT; diff --git a/modules/gpgsqlbackend/schema.pgsql.sql b/modules/gpgsqlbackend/schema.pgsql.sql index 3a7534bb8166..80735c2e6b41 100644 --- a/modules/gpgsqlbackend/schema.pgsql.sql +++ b/modules/gpgsqlbackend/schema.pgsql.sql @@ -77,7 +77,7 @@ CREATE TABLE cryptokeys ( domain_id INT REFERENCES domains(id) ON DELETE CASCADE, flags INT NOT NULL, active BOOL, - published BOOL DEFAULT true, + published BOOL DEFAULT TRUE, content TEXT ); diff --git a/modules/gsqlite3backend/4.2.0_to_4.3.0_schema.sqlite3.sql b/modules/gsqlite3backend/4.2.0_to_4.3.0_schema.sqlite3.sql index d334fecdfccc..a6ca8fd3dcf1 100644 --- a/modules/gsqlite3backend/4.2.0_to_4.3.0_schema.sqlite3.sql +++ b/modules/gsqlite3backend/4.2.0_to_4.3.0_schema.sqlite3.sql @@ -1 +1,17 @@ -ALTER TABLE cryptokeys ADD published BOOL DEFAULT 1; +BEGIN TRANSACTION; + CREATE TABLE cryptokeys_temp ( + id INTEGER PRIMARY KEY, + domain_id INT NOT NULL, + flags INT NOT NULL, + active BOOL, + published BOOL DEFAULT 1, + content TEXT, + FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE + ); + + INSERT INTO cryptokeys_temp SELECT id,domain_id,flags,active,1,content FROM cryptokeys; + DROP TABLE cryptokeys; + ALTER TABLE cryptokeys_temp RENAME TO cryptokeys; + + CREATE INDEX domainidindex ON cryptokeys(domain_id); +COMMIT; diff --git a/modules/gsqlite3backend/4.3.0-beta2_to_4.3.0_schema.sqlite3.sql b/modules/gsqlite3backend/4.3.0-beta2_to_4.3.0_schema.sqlite3.sql new file mode 100644 index 000000000000..693b4ea9f6b4 --- /dev/null +++ b/modules/gsqlite3backend/4.3.0-beta2_to_4.3.0_schema.sqlite3.sql @@ -0,0 +1,17 @@ +BEGIN TRANSACTION; + CREATE TABLE cryptokeys_temp ( + id INTEGER PRIMARY KEY, + domain_id INT NOT NULL, + flags INT NOT NULL, + active BOOL, + published BOOL DEFAULT 1, + content TEXT, + FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE + ); + + INSERT INTO cryptokeys_temp SELECT id,domain_id,flags,active,published,content FROM cryptokeys; + DROP TABLE cryptokeys; + ALTER TABLE cryptokeys_temp RENAME TO cryptokeys; + + CREATE INDEX domainidindex ON cryptokeys(domain_id); +COMMIT; diff --git a/pdns/bind-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql b/pdns/bind-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql index d334fecdfccc..f21fcfaec74d 100644 --- a/pdns/bind-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql +++ b/pdns/bind-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql @@ -1 +1,16 @@ -ALTER TABLE cryptokeys ADD published BOOL DEFAULT 1; +BEGIN TRANSACTION; + CREATE TABLE cryptokeys_temp ( + id INTEGER PRIMARY KEY, + domain VARCHAR(255) COLLATE NOCASE, + flags INT NOT NULL, + active BOOL, + published BOOL DEFAULT 1, + content TEXT + ); + + INSERT INTO cryptokeys_temp SELECT id,domain,flags,active,1,content FROM cryptokeys; + DROP TABLE cryptokeys; + ALTER TABLE cryptokeys_temp RENAME TO cryptokeys; + + CREATE INDEX domainnameindex ON cryptokeys(domain); +COMMIT; diff --git a/pdns/bind-dnssec.4.3.0-beta2_to_4.3.0_schema.sqlite3.sql b/pdns/bind-dnssec.4.3.0-beta2_to_4.3.0_schema.sqlite3.sql new file mode 100644 index 000000000000..ddd5d0500c12 --- /dev/null +++ b/pdns/bind-dnssec.4.3.0-beta2_to_4.3.0_schema.sqlite3.sql @@ -0,0 +1,16 @@ +BEGIN TRANSACTION; + CREATE TABLE cryptokeys_temp ( + id INTEGER PRIMARY KEY, + domain VARCHAR(255) COLLATE NOCASE, + flags INT NOT NULL, + active BOOL, + published BOOL DEFAULT 1, + content TEXT + ); + + INSERT INTO cryptokeys_temp SELECT id,domain,flags,active,published,content FROM cryptokeys; + DROP TABLE cryptokeys; + ALTER TABLE cryptokeys_temp RENAME TO cryptokeys; + + CREATE INDEX domainnameindex ON cryptokeys(domain); +COMMIT; diff --git a/pdns/bind-dnssec.schema.sqlite3.sql b/pdns/bind-dnssec.schema.sqlite3.sql index d9046bc55c35..afef620088d4 100644 --- a/pdns/bind-dnssec.schema.sqlite3.sql +++ b/pdns/bind-dnssec.schema.sqlite3.sql @@ -12,7 +12,7 @@ create table cryptokeys ( domain VARCHAR(255) COLLATE NOCASE, flags INT NOT NULL, active BOOL, - published BOOL, + published BOOL DEFAULT 1, content TEXT );