[Bucardo-general] Two masters, replication works but only one of the triggers fire

Greg Sabino Mullane greg at endpoint.com
Sat Aug 31 03:23:40 UTC 2013


On Fri, Aug 30, 2013 at 04:29:58PM +0200, Torbjørn Kristoffersen wrote:
> I have a problem with Bucardo (latest stable) - I have a table "person"
> that has a trigger, updating a table called "archive" on insert/update.
> 
> This works fine, except when person table is replicated with Bucardo (two
> masters, with standard conflict set to 'latest').
> 
> The trigger only seems to fire on the DB where the change was initially
> performed, but the trigger is always ignored on the other database.
> 
> The data in "person" is however replicated perfectly.
> 
> Unfortunately it's absolutely necessary that both triggers fire. Is this
> perhaps a bug?  It seems like a common requirement.
> 
> PS - if it matters, the trigger adds a row to a table that is not in the
> goat table.  It's a table that is kept outside of replication.

This is by design. All triggers and rules are disabled when Bucardo copies 
data from table to table. The canonical fix is to put the updated table 
("archive") into the sync with the original table ("person"). Another 
solution is to set the trigger to "always", which will ensure that it fires 
even when Bucardo is adding rows.

http://www.postgresql.org/docs/9.2/static/sql-altertable.html

-- 
Greg Sabino Mullane greg at endpoint.com
End Point Corporation
PGP Key: 0x14964AC8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Digital signature
URL: <https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20130830/f6065a2f/attachment.sig>


More information about the Bucardo-general mailing list