ALTER TABLE records MODIFY type VARCHAR(10);
ALTER TABLE supermasters MODIFY ip VARCHAR(64) NOT NULL;
ALTER TABLE supermasters ADD PRIMARY KEY(ip, nameserver);
+ALTER TABLE supermasters MODIFY account VARCHAR(40) NOT NULL;
ALTER TABLE domainmetadata MODIFY kind VARCHAR(32);
ALTER TABLE tsigkeys MODIFY algorithm VARCHAR(50);
ALTER TABLE domainmetadata ENGINE=InnoDB;
declare(suffix,"info-all-slaves-query","","select id,name,master,last_check,type from domains where type='SLAVE'");
declare(suffix,"supermaster-query","", "select account from supermasters where ip='%s' and nameserver='%s'");
- declare(suffix,"supermaster-name-to-ips", "", "select ip from supermasters where nameserver='%s'");
+ declare(suffix,"supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver='%s' and account='%s'");
declare(suffix,"insert-zone-query","", "insert into domains (type,name) values('NATIVE','%s')");
declare(suffix,"insert-slave-query","", "insert into domains (type,name,master,account) values('SLAVE','%s','%s','%s')");
ALTER TABLE records ADD auth TINYINT(1) DEFAULT 1;
ALTER TABLE records MODIFY type VARCHAR(10);
ALTER TABLE supermasters MODIFY ip VARCHAR(64) NOT NULL;
+ALTER TABLE supermasters MODIFY account VARCHAR(40) NOT NULL;
ALTER TABLE supermasters ADD PRIMARY KEY(ip, nameserver);
CREATE INDEX recordorder ON records (domain_id, ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
- account VARCHAR(40) DEFAULT NULL,
+ account VARCHAR(40) NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;
declare(suffix,"info-all-slaves-query","","select id,name,master,last_check,type from domains where type='SLAVE'");
declare(suffix,"supermaster-query","", "select account from supermasters where ip='%s' and nameserver='%s'");
- declare(suffix,"supermaster-name-to-ips", "", "select ip from supermasters where nameserver='%s'");
+ declare(suffix,"supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver='%s' and account='%s'");
declare(suffix,"insert-zone-query","", "insert into domains (id, type, name) values(domain_id_sequence.nextval, 'NATIVE','%s')");
declare(suffix,"insert-slave-query","", "insert into domains (id, type,name,master,account) values(domain_id_sequence.nextval, 'SLAVE','%s','%s','%s')");
CREATE TABLE supermasters (
ip VARCHAR2(64) NOT NULL,
nameserver VARCHAR2(255) NOT NULL,
- account VARCHAR2(40) DEFAULT NULL,
+ account VARCHAR2(40) NOT NULL,
PRIMARY KEY (ip, nameserver)
);
ALTER TABLE records ALTER COLUMN auth SET DEFAULT 't';
ALTER TABLE records ALTER COLUMN type TYPE VARCHAR(10);
ALTER TABLE supermasters ALTER COLUMN ip TYPE INET USING ip::INET;
+ALTER TABLE supermasters ALTER COLUMN account SET DEFAULT NOT NULL;
ALTER TABLE supermasters ADD CONSTRAINT supermasters_pkey PRIMARY KEY (ip, nameserver);
ALTER TABLE domainmetadata ALTER COLUMN kind TYPE VARCHAR(32);
ALTER TABLE tsigkeys ALTER COLUMN algorithm TYPE VARCHAR(50);
declare(suffix,"info-all-slaves-query","","select id,name,master,last_check,type from domains where type='SLAVE'");
declare(suffix,"supermaster-query","", "select account from supermasters where ip='%s' and nameserver=E'%s'");
- declare(suffix,"supermaster-name-to-ips", "", "select ip from supermasters where nameserver=E'%s'");
+ declare(suffix,"supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver=E'%s' and account=E'%s'");
declare(suffix,"insert-zone-query","", "insert into domains (type,name) values('NATIVE',E'%s')");
declare(suffix,"insert-slave-query","", "insert into domains (type,name,master,account) values('SLAVE',E'%s',E'%s',E'%s')");
ALTER TABLE records ADD auth BOOL DEFAULT 't';
ALTER TABLE records ALTER COLUMN type TYPE VARCHAR(10);
ALTER TABLE supermasters ALTER COLUMN ip TYPE INET USING ip::INET;
+ALTER TABLE supermasters ALTER COLUMN account SET DEFAULT NOT NULL;
ALTER TABLE supermasters ADD CONSTRAINT supermasters_pkey PRIMARY KEY (ip, nameserver);
CREATE INDEX recordorder ON records (domain_id, ordername text_pattern_ops);
CREATE TABLE supermasters (
ip INET NOT NULL,
nameserver VARCHAR(255) NOT NULL,
- account VARCHAR(40) DEFAULT NULL,
+ account VARCHAR(40) NOT NULL,
PRIMARY KEY(ip, nameserver)
);
);
INSERT INTO supermasters_backup SELECT ip,nameserver,account FROM supermasters;
+ UPDATE supermasters_backup SET account='' WHERE account IS NULL;
DROP TABLE supermasters;
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL COLLATE NOCASE,
- account VARCHAR(40) DEFAULT NULL
+ account VARCHAR(40) NOT NULL
);
CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
declare( suffix, "info-all-slaves-query", "","select id,name,master,last_check,type from domains where type='SLAVE'");
declare( suffix, "supermaster-query", "", "select account from supermasters where ip='%s' and nameserver='%s'");
- declare( suffix, "supermaster-name-to-ips", "", "select ip from supermasters where nameserver='%s'");
+ declare( suffix, "supermaster-name-to-ips", "", "select ip,account from supermasters where nameserver='%s' and account='%s'");
declare( suffix, "insert-zone-query", "", "insert into domains (type,name) values('NATIVE','%s')");
declare( suffix, "insert-slave-query", "", "insert into domains (type,name,master,account) values('SLAVE','%s','%s','%s')");
);
INSERT INTO supermasters_backup SELECT ip, nameserver, account FROM supermasters;
+ UPDATE supermasters_backup SET account='' WHERE account IS NULL;
DROP TABLE supermasters;
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL COLLATE NOCASE,
- account VARCHAR(40) DEFAULT NULL
+ account VARCHAR(40) NOT NULL
);
CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL COLLATE NOCASE,
- account VARCHAR(40) DEFAULT NULL
+ account VARCHAR(40) NOT NULL
);
CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
if (!nameserver.empty()) {
// figure out all IP addresses for the master
format = d_GetSuperMasterIPs;
- snprintf(output,sizeof(output)-1,format.c_str(),sqlEscape(nameserver).c_str());
+ snprintf(output,sizeof(output)-1,format.c_str(),sqlEscape(nameserver).c_str(),sqlEscape(account).c_str());
d_db->doQuery(output, d_result);
if (!d_result.empty()) {
// collect all IP addresses
vector<string> tmp;
BOOST_FOREACH(SSql::row_t& row, d_result) {
- tmp.push_back(row[0]);
+ if (account == row[1])
+ tmp.push_back(row[0]);
}
// set them as domain's masters, comma separated
masters = boost::join(tmp, ", ");