DBIx-Class-AuditLog
view release on metacpan or search on metacpan
lib/DBIx/Class/ResultSet/AuditLog.pm view on Meta::CPAN
package DBIx::Class::ResultSet::AuditLog;
$DBIx::Class::ResultSet::AuditLog::VERSION = '0.6.4';
use strict;
use warnings;
use base "DBIx::Class::ResultSet";
sub delete {
shift->delete_all;
};
sub update {
shift->update_all(@_);
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
DBIx::Class::ResultSet::AuditLog
=head1 VERSION
version 0.6.4
=head1 SYNOPSIS
Either create your own resultset-classes for each audited result-class, and load
AuditLogs resultset-component:
package MySchema::ResultSet::MyAuditedSource;
use base "DBIx::Class::ResultSet"; # or use Moose and MooseX::NonMoose;
__PACKAGE__->load_components("ResultSet::AuditLog");
Or set the default resultset-class in your Schema:
package MySchema;
use base "DBIx::Class::Schema";
...
__PACKAGE__->load_namespaces(
default_resultset_class => "AuditLog"
);
=head1 DESCRIPTION
This resultset class enables logging for database updates made by calling
L<DBIx::Class::ResultSet/delete> and L<DBIx::Class::ResultSet/update>.
This includes any updates made by methods which rely on the above, like
L<DBIx::Class::Relationship::Base/set_\$rel>.
If you want full logging in a relational database, you most likely want to use this
component.
=head2 NOTE:
The current implementation enables logging in the resultset by simply delegating
'delete' and 'update' to 'delete_all' and 'update_all', which call the required triggers.
As a result, a database query like
"DELETE FROM table WHERE id IN '1', '2', '3'"
( run in 0.471 second using v1.01-cache-2.11-cpan-39bf76dae61 )