Provided by: pdns-server_5.0.0-2_amd64 bug

NAME

       zone2sql - convert BIND zones to SQL

SYNOPSIS

       zone2sql {--named-conf=PATH,--zone-file=PATH [--zone-name=NAME]} [Options]

DESCRIPTION

       zone2sql parses BIND named.conf files and zonefiles and outputs SQL on standard output, which can then be
       fed to your database.

       zone2sql understands the BIND master file extension $GENERATE and will also honour $ORIGIN and $TTL.

       For  backends  supporting  secondary  operation  there  is  also  an  option  to  keep secondary zones as
       secondaries, and not convert them to native operation.

       zone2sql can generate SQL for the Generic MySQL, Generic PostgreSQL, Generic SQLite3 backend.

OPTIONS

INPUT OPTIONS

       --named-conf=<PATH>
              Read PATH to get the BIND configuration

       --zone=<PATH>
              Parse only the zone file at PATH Conflicts with --named-conf parameter.

       --zone-name=<NAME>
              When parsing a single zone without $ORIGIN statement, set ZONE as the zone name.

BACKENDS

       --gmysql
              Output in format suitable for the default configuration of the Generic MySQL backend.

       --gpgsql
              Output in format suitable for the default configuration of the Generic PostgreSQL backend.

       --gsqlite
              Output in format suitable for the default configuration of the Generic SQLite3 backend.

OUTPUT OPTIONS

       --json-comments
              Parse JSON in zonefile comments to set the 'disabled' and 'comment' fields in  the  database.  See
              JSON COMMENTS for more information.

       --transactions
              If  the  target  SQL  backend  supports  transactions,  wrap  every  domain into a transaction for
              integrity and possibly higher speed.

OTHER OPTIONS

       --delete-matching-domains
              Adds a delete statement to the sql output to allow re-importing zones.  Mostly only useful  during
              testing.   Since  this  will  only  delete  the  domain,  but not its records, you should have the
              optional foreign key relationship enabled in your  schema  in  order  to  avoid  leaving  dangling
              records.

       --filter-duplicate-soa
              If  there's  more  than one SOA record in the zone (possibly because it was AXFR'd), ignore it. If
              this option is not set, all SOA records in the zone are emitted.

       --help List all options

       --on-error-resume-next
              Ignore missing zone files during parsing. Dangerous.

       --secondary
              Maintain secondary status of zones listed in named.conf as being slaves.  The default behaviour is
              to convert all zones to native operation.

       --verbose
              Be verbose during conversion.

JSON COMMENTS

       The Generic SQL backends have the 'comment' and 'disabled' fields in the 'records' table.  The  'comment'
       field  contains  a comment for this record (if any) and the 'disabled' field tells PowerDNS if the record
       can be served to clients.

       When  a  zonefile  contains  a  comment  like  ;  json={"comment":  "Something",  "disabled":  true}  and
       --json-comments  is  provided, the 'comment' field will contain "Something" and the 'disabled' field will
       be set to the database's native true value.

       WARNING: Using JSON comments to disable records means that the zone in PowerDNS is different from the one
       served by BIND, as BIND does not handle the disabled status in the comment.

SEE ALSO

       pdns_server(1)

AUTHOR

       PowerDNS.COM BV

COPYRIGHT

       PowerDNS.COM BV

                                                  Aug 22, 2025                                       ZONE2SQL(1)