Test::DBChanges::Pg - track changes to PostgreSQL tables
version 1.0.0
my $dbchanges = Test::DBChanges::Pg->new({ dbh => $dbh, source_names => [qw(things ledger)], }); # later: my $changeset = $dbchanges->changeset_for_code(sub { do_something($dbh) }); for my $row ($changeset->changes_for_source('things')->inserted_rows->@*) { # $row is a hashref with the inserted data }
This class installs a set of triggers in the database, that record all changes (insert, update, delete) to a set of tables.
It can then parse this record into a changeset, which will build hashrefs corresponding to each changed row.
This should really only be used in tests. At the moment the table, stored procedure and triggers that this class needs are installed but never removed.
source_names
Arrayref of names of the tables to record changes for.
dbh
Connected database handle to track changes in.
changeset_for_code
my $changeset = $dbchanges->changeset_for_code(sub { ... });
Runs the given coderefs, and returns a Test::DBChanges::ChangeSet instance containing all changes to the tables referenced by the "source_names".
Test::DBChanges::ChangeSet
Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>
This software is copyright (c) 2019 by BroadBean UK, a CareerBuilder Company.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Test::DBChanges, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::DBChanges
CPAN shell
perl -MCPAN -e shell install Test::DBChanges
For more information on module installation, please visit the detailed CPAN module installation guide.