docs/README.sequence
author rejo
Tue, 10 Jul 2007 21:24:06 +0000
changeset 37 b785e54690ce
parent 8 47dd15d8bb8c
permissions -rw-r--r--
[feladat @ 84] Bugfix. The function zone_count() now also counts zones an owner has only partial access to, not just those zones the owner has full access to. This fixes just the count, the zones a user has partial access to are not (yet!) shown in the "list zones" page. Bugfix. In the zone listing the "edit" button is now show for users with access level 1. Untill now they were presented an overview of the zones they could change, but there was no link for them to actually edit the zone. Bugfix. Some of the buttons in the "edit zone" interface that are of no use to a user with access level 1 have been hidden. Bugfix. Make sure a user with access level 1 with only partial access to a zone cannot add new records to that zone. Only the zone owner should be able to add new record. Bugfix. If a user with access level 1 edits a record in a zone he has only partial access to, an error was shown because of call to a non- existing function in the PEAR:MDB2. This bug was most likely introduced while migrating from PEAR:DB to PEAR:MDB2. Bugfix. A user with access level 1 was able to delete all records of a zone he has only partial access to. Some additional checks have been added. Bugfix. If a user with accees level 1 has partial access to one or more zones starting with a certain character, but did not own at least one entire zone starting with the same character, the character wasn't clickable in the "list zone" page. Interface. If no record or zone id is given for delete_record.php or delete_domain.php, don't just die but echo a nice message. The i18n files have not yet been updated to reflect this change. Interface. If no master IP is given in delete_supermaster.php, don't just die but echo a nice message. The i18n files have not yet been updated to reflect this change. [All fixes by Peter Beernink.]
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     1
README.sequence - Additional documentation on manual inserts (using
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     2
poweradmin along with other interfaces to the powerdns database).
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     3
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     4
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     5
Removal of "sequence updater"
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     6
-----------------------------------------------------------------------
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     7
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     8
Up to poweradmin version 1.2.7-patched, the code included the so
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
     9
called "sequence updater". It was written to synchronize poweradmin
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    10
with the database after manual inserts of zones and records. This
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    11
happens if you insert new zones or records by hand, or have other
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    12
interfaces than poweradmin talking to the database as well.
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    13
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    14
The 1.2.7-patched version of poweradmin was using the PEAR::DB module,
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    15
using it's nextID() function. It tells the application what will be
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    16
the next ID for insertion. However, mysql has "auto_increment" and
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    17
pgsql has "serial". Both allow to do insert with ID's created on the
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    18
run, without the need of seperate sequence numbers.
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    19
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    20
In order to get rid of the incidental errors and the need to hit the
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    21
"synchronize database" from time to time, the "sequence updater" has
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    22
been removed and the code has been updated to use the "auto_increment"
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    23
and "serial" functionality. As long as you do manual inserts the
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    24
correct way, this will not cause any problems.
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    25
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    26
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    27
Insert new records and zones the correct way (using other tools)
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    28
-----------------------------------------------------------------------
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    29
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    30
According to the documentation of powerdns (2.9.20), the id column of
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    31
the tables domains and records in a mysql setup are created using the
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    32
"auto_increment" option and in a pgsql setup using the "serial"
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    33
option. [1] 
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    34
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    35
This will allow for auto increments of the id field, as long as no one
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    36
does a manual insert, specifying the id. So, let's say we have created
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    37
a table, one in mysql, one in pgsql:
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    38
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    39
  CREATE TABLE xmpl_tbl (id INT auto_increment, text TEXT);
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    40
  CREATE TABLE xmpl_tbl (id SERIAL PRIMARY KEY, text TEXT);
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    41
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    42
This insert will work in pgsql only:
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    43
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    44
  INSERT INTO xmpl_tbl VALUES (DEFAULT,'First insert test");
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    45
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    46
These inserts will work in mysql only:
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    47
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    48
  INSERT INTO xmpl_tbl VALUES (NULL,'Third insert test"); 
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    49
  INSERT INTO xmpl_tbl VALUES ('','Fourth insert test"); 
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    50
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    51
This will work in both mysql and pgsql (as long as id didn't exist
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    52
already), but it will break "auto increment" feature in pgsql [2] (can
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    53
be fixed using setval() functionality in pgsql):
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    54
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    55
  INSERT INTO xmpl_tbl VALUES (42,'Fifth insert test");
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    56
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    57
This will work in both mysql and pgsql:
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    58
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    59
  INSERT INTO xmpl_tbl (text) VALUES ('Second insert test");
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    60
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    61
So, in other words: if you want to insert records and zones into the
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    62
powerdns database using other tools and interfaces than poweradmin,
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    63
you should make sure you are using the correct syntax.
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    64
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    65
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    66
Limitations
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    67
-----------------------------------------------------------------------
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    68
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    69
Removing the "sequence updater" removes the possibilty to use the
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    70
poweradmin code against other databases than mysql and pgsql (or at
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    71
least, it is untested).
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    72
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    73
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    74
More information
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    75
-----------------------------------------------------------------------
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    76
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    77
More information can be found here:
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    78
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    79
 - PowerDNS manual, section backends in detail
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    80
   <http://downloads.powerdns.com/documentation/html/generic-mypgsql-backends.html>
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    81
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    82
 - Postgresql documentation, section Operational Questions 
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    83
   <http://www.postgresql.org/files/documentation/books/aw_pgsql/node196.html#SECTION0029916000000000000000>
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    84
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    85
 - pgsql-bugs mailinglist archive
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    86
   <http://archives.postgresql.org/pgsql-bugs/2004-11/msg00340.php>
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    87
   <http://archives.postgresql.org/pgsql-bugs/2004-11/msg00344.php>
47dd15d8bb8c [feladat @ 20]
rejo
parents:
diff changeset
    88