NAME
Test::DBChanges::Pg::DBIC - track changes to DBIC+PostgreSQL resultsets
VERSION
version 1.0.0
SYNOPSIS
my $dbchanges = Test::DBChanges::Pg::DBIC->new({
schema => $schema,
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 MySchema::Result::Things object with the inserted data
}
DESCRIPTION
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 DBIC objects corresponding to each changed row.
NOTE: the row objects will not be in_storage
(some of them may refer to deleted rows, for example!)
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.
ATTRIBUTES
source_names
Arrayref of resultset names corresponding to the tables to record changes for.
schema
The connected schema to track changes in.
AUTHOR
Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>
COPYRIGHT AND LICENSE
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.