[Pdns-users] Continuation of serial difficulties with PDNS / Postgres
Mitchell Smith
mjsotn at gmail.com
Thu Sep 4 04:13:11 UTC 2008
Greetings,
I appear to be experiencing some difficulties with PowerDNS and the Postgres
backend, specifically PDNS returning a serial of 0 for every domain.
We are running a custom schema as follows:
CREATE TABLE domains (
created_timestamp timestamp without time zone NOT NULL,
domain_id integer DEFAULT nextval('domains_seq'::regclass) NOT NULL,
is_enabled character varying(5) NOT NULL,
last_refresh_from_master timestamp without time zone,
master_ip character varying(15),
modified_timestamp timestamp without time zone,
name character varying(255) NOT NULL,
notified_serial timestamp without time zone,
type character varying(8) NOT NULL
);
CREATE TABLE records (
content character varying(255) NOT NULL,
created_timestamp timestamp without time zone NOT NULL,
domain_id integer NOT NULL,
is_dynamic character varying(5) NOT NULL,
is_enabled character varying(5) NOT NULL,
modified_timestamp timestamp without time zone,
name character varying(255) NOT NULL,
priority integer,
record_id integer DEFAULT nextval('records_seq'::regclass) NOT NULL,
ttl integer NOT NULL,
type character varying(8) NOT NULL
);
The queries in my pdns.conf file look like this:
gpgsql-basic-query=select
content,ttl,priority,type,domain_id,name,int4(abstime(modified_timestamp))
from records where type='%s' and name='%s'
gpgsql-id-query=select
content,ttl,priority,type,domain_id,name,int4(abstime(modified_timestamp))
from records where type='%s' and name='%s' and domain_id=%d
gpgsql-any-query=select
content,ttl,priority,type,domain_id,name,int4(abstime(modified_timestamp))
from records where name='%s'
gpgsql-any-id-query=select
content,ttl,priority,type,domain_id,name,int4(abstime(modified_timestamp))
from records where name='%s' and domain_id=%d
gpgsql-list-query=select
content,ttl,priority,type,domain_id,name,int4(abstime(modified_timestamp))
from records where domain_id=%d
gpgsql-master-zone-query=select master_ip from domains where name='%s' and
type='SLAVE'
gpgsql-info-zone-query=select
domain_id,name,master_ip,last_refresh_from_master,notified_serial,type from
domains where name='%s'
gpgsql-info-all-slaves-query=select
domain_id,name,master_ip,last_refresh_from_master,type from domains where
type='SLAVE'
gpgsql-insert-record-query=insert into records
(content,ttl,priority,type,domain_id,name,is_dynamic) values
('%s',%d,%d,'%s',%d,'%s',true)
gpgsql-update-serial-query=update domains set notified_serial=%d where
domain_id=%d
gpgsql-update-lastcheck-query=update domains set last_refresh_from_master=%d
where domain_id=%d
gpgsql-info-all-master-query=select
domain_id,name,master_ip,last_refresh_from_master,notified_serial,type from
domains where type='MASTER'
gpgsql-delete-zone-query=delete from records where domain_id=%d
>From my understanding, if the SOA record for a domain contains 0 as the
serial, PowerDNS will return a serial in unixtime format, which is our
modified_timestamp field.
Any hints on where I might be going wrong in the above setup would be very
much appreciated.
Cheers,
Mitch
More information about the Pdns-users
mailing list