Bladeren bron

BREAKING feat(dblord,dbmaster,nslord,nsmaster): pdns 4.1, fixes #65

This commit also updates the pdns database schemas.  On upgrade from an
earlier version of desec-stack, NO automatic migration is done.  It is
required to apply the changes manually.  Corresponding SQL is found at:
https://raw.githubusercontent.com/PowerDNS/pdns/abb23e5245e9bef79411fc9d5e31dfe9ec2f1138/modules/gmysqlbackend/3.4.0_to_4.1.0_schema.mysql.sql
Peter Thomassen 7 jaren geleden
bovenliggende
commit
630c3500b2
4 gewijzigde bestanden met toevoegingen van 28 en 32 verwijderingen
  1. 13 15
      dblord/initdb.d/10-pdns-lord.sql
  2. 13 15
      dbmaster/initdb.d/10-pdns-master.sql
  3. 1 1
      nslord/Dockerfile
  4. 1 1
      nsmaster/Dockerfile

+ 13 - 15
dblord/initdb.d/10-pdns-lord.sql

@@ -7,15 +7,15 @@ CREATE TABLE domains (
   last_check            INT DEFAULT NULL,
   last_check            INT DEFAULT NULL,
   type                  VARCHAR(6) NOT NULL,
   type                  VARCHAR(6) NOT NULL,
   notified_serial       INT DEFAULT NULL,
   notified_serial       INT DEFAULT NULL,
-  account               VARCHAR(40) DEFAULT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE UNIQUE INDEX name_index ON domains(name);
 CREATE UNIQUE INDEX name_index ON domains(name);
 
 
 
 
 CREATE TABLE records (
 CREATE TABLE records (
-  id                    INT AUTO_INCREMENT,
+  id                    BIGINT AUTO_INCREMENT,
   domain_id             INT DEFAULT NULL,
   domain_id             INT DEFAULT NULL,
   name                  VARCHAR(255) DEFAULT NULL,
   name                  VARCHAR(255) DEFAULT NULL,
   type                  VARCHAR(10) DEFAULT NULL,
   type                  VARCHAR(10) DEFAULT NULL,
@@ -27,19 +27,19 @@ CREATE TABLE records (
   ordername             VARCHAR(255) BINARY DEFAULT NULL,
   ordername             VARCHAR(255) BINARY DEFAULT NULL,
   auth                  TINYINT(1) DEFAULT 1,
   auth                  TINYINT(1) DEFAULT 1,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE INDEX nametype_index ON records(name,type);
 CREATE INDEX nametype_index ON records(name,type);
 CREATE INDEX domain_id ON records(domain_id);
 CREATE INDEX domain_id ON records(domain_id);
-CREATE INDEX recordorder ON records (domain_id, ordername);
+CREATE INDEX ordername ON records (ordername);
 
 
 
 
 CREATE TABLE supermasters (
 CREATE TABLE supermasters (
   ip                    VARCHAR(64) NOT NULL,
   ip                    VARCHAR(64) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
-  account               VARCHAR(40) NOT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
   PRIMARY KEY (ip, nameserver)
   PRIMARY KEY (ip, nameserver)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 
 
 CREATE TABLE comments (
 CREATE TABLE comments (
@@ -48,12 +48,11 @@ CREATE TABLE comments (
   name                  VARCHAR(255) NOT NULL,
   name                  VARCHAR(255) NOT NULL,
   type                  VARCHAR(10) NOT NULL,
   type                  VARCHAR(10) NOT NULL,
   modified_at           INT NOT NULL,
   modified_at           INT NOT NULL,
-  account               VARCHAR(40) NOT NULL,
-  comment               VARCHAR(64000) NOT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
+  comment               TEXT CHARACTER SET 'utf8' NOT NULL,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
-CREATE INDEX comments_domain_id_idx ON comments (domain_id);
 CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 
 
@@ -64,7 +63,7 @@ CREATE TABLE domainmetadata (
   kind                  VARCHAR(32),
   kind                  VARCHAR(32),
   content               TEXT,
   content               TEXT,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
 CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
 
 
@@ -76,7 +75,7 @@ CREATE TABLE cryptokeys (
   active                BOOL,
   active                BOOL,
   content               TEXT,
   content               TEXT,
   PRIMARY KEY(id)
   PRIMARY KEY(id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
@@ -87,7 +86,6 @@ CREATE TABLE tsigkeys (
   algorithm             VARCHAR(50),
   algorithm             VARCHAR(50),
   secret                VARCHAR(255),
   secret                VARCHAR(255),
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
-

+ 13 - 15
dbmaster/initdb.d/10-pdns-master.sql

@@ -7,15 +7,15 @@ CREATE TABLE domains (
   last_check            INT DEFAULT NULL,
   last_check            INT DEFAULT NULL,
   type                  VARCHAR(6) NOT NULL,
   type                  VARCHAR(6) NOT NULL,
   notified_serial       INT DEFAULT NULL,
   notified_serial       INT DEFAULT NULL,
-  account               VARCHAR(40) DEFAULT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE UNIQUE INDEX name_index ON domains(name);
 CREATE UNIQUE INDEX name_index ON domains(name);
 
 
 
 
 CREATE TABLE records (
 CREATE TABLE records (
-  id                    INT AUTO_INCREMENT,
+  id                    BIGINT AUTO_INCREMENT,
   domain_id             INT DEFAULT NULL,
   domain_id             INT DEFAULT NULL,
   name                  VARCHAR(255) DEFAULT NULL,
   name                  VARCHAR(255) DEFAULT NULL,
   type                  VARCHAR(10) DEFAULT NULL,
   type                  VARCHAR(10) DEFAULT NULL,
@@ -27,19 +27,19 @@ CREATE TABLE records (
   ordername             VARCHAR(255) BINARY DEFAULT NULL,
   ordername             VARCHAR(255) BINARY DEFAULT NULL,
   auth                  TINYINT(1) DEFAULT 1,
   auth                  TINYINT(1) DEFAULT 1,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE INDEX nametype_index ON records(name,type);
 CREATE INDEX nametype_index ON records(name,type);
 CREATE INDEX domain_id ON records(domain_id);
 CREATE INDEX domain_id ON records(domain_id);
-CREATE INDEX recordorder ON records (domain_id, ordername);
+CREATE INDEX ordername ON records (ordername);
 
 
 
 
 CREATE TABLE supermasters (
 CREATE TABLE supermasters (
   ip                    VARCHAR(64) NOT NULL,
   ip                    VARCHAR(64) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
   nameserver            VARCHAR(255) NOT NULL,
-  account               VARCHAR(40) NOT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
   PRIMARY KEY (ip, nameserver)
   PRIMARY KEY (ip, nameserver)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 
 
 CREATE TABLE comments (
 CREATE TABLE comments (
@@ -48,12 +48,11 @@ CREATE TABLE comments (
   name                  VARCHAR(255) NOT NULL,
   name                  VARCHAR(255) NOT NULL,
   type                  VARCHAR(10) NOT NULL,
   type                  VARCHAR(10) NOT NULL,
   modified_at           INT NOT NULL,
   modified_at           INT NOT NULL,
-  account               VARCHAR(40) NOT NULL,
-  comment               VARCHAR(64000) NOT NULL,
+  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
+  comment               TEXT CHARACTER SET 'utf8' NOT NULL,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
-CREATE INDEX comments_domain_id_idx ON comments (domain_id);
 CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_name_type_idx ON comments (name, type);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
 
 
@@ -64,7 +63,7 @@ CREATE TABLE domainmetadata (
   kind                  VARCHAR(32),
   kind                  VARCHAR(32),
   content               TEXT,
   content               TEXT,
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
 CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
 
 
@@ -76,7 +75,7 @@ CREATE TABLE cryptokeys (
   active                BOOL,
   active                BOOL,
   content               TEXT,
   content               TEXT,
   PRIMARY KEY(id)
   PRIMARY KEY(id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 CREATE INDEX domainidindex ON cryptokeys(domain_id);
 
 
@@ -87,7 +86,6 @@ CREATE TABLE tsigkeys (
   algorithm             VARCHAR(50),
   algorithm             VARCHAR(50),
   secret                VARCHAR(255),
   secret                VARCHAR(255),
   PRIMARY KEY (id)
   PRIMARY KEY (id)
-) Engine=InnoDB DEFAULT CHARSET=latin1;
+) Engine=InnoDB CHARACTER SET 'latin1';
 
 
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
 CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
-

+ 1 - 1
nslord/Dockerfile

@@ -6,7 +6,7 @@ RUN apt-get update && apt-get install -y \
 		dirmngr gnupg \
 		dirmngr gnupg \
 	--no-install-recommends && apt-get clean && rm -rf /var/lib/apt/lists/*
 	--no-install-recommends && apt-get clean && rm -rf /var/lib/apt/lists/*
 
 
-RUN echo 'deb http://repo.powerdns.com/debian stretch-auth-40 main' \
+RUN echo 'deb [arch=amd64] http://repo.powerdns.com/debian stretch-auth-41 main' \
       >> /etc/apt/sources.list \
       >> /etc/apt/sources.list \
  && echo 'Package: pdns-*' \
  && echo 'Package: pdns-*' \
       > /etc/apt/preferences.d/pdns \
       > /etc/apt/preferences.d/pdns \

+ 1 - 1
nsmaster/Dockerfile

@@ -6,7 +6,7 @@ RUN apt-get update && apt-get install -y \
 		dirmngr gnupg \
 		dirmngr gnupg \
 	--no-install-recommends && apt-get clean && rm -rf /var/lib/apt/lists/*
 	--no-install-recommends && apt-get clean && rm -rf /var/lib/apt/lists/*
 
 
-RUN echo 'deb http://repo.powerdns.com/debian stretch-auth-40 main' \
+RUN echo 'deb [arch=amd64] http://repo.powerdns.com/debian stretch-auth-41 main' \
       >> /etc/apt/sources.list \
       >> /etc/apt/sources.list \
  && echo 'Package: pdns-*' \
  && echo 'Package: pdns-*' \
       > /etc/apt/preferences.d/pdns \
       > /etc/apt/preferences.d/pdns \