use strict;
use warnings;
+our $VERSION = '0.01';
sub _journal_schema_prototype {
my $self = shift;
my $comp = $self->journal_component || "Journal";
-
+
my $prefix = $self->journal_prefix || '';
foreach my $audit (qw(ChangeSet ChangeLog)) {
my $class = blessed($proto) . "::$audit";
return $schema;
}
-sub deploy {
- my $self = shift;
-
- $self->next::method(@_);
-
- $self->journal_schema_deploy(@_);
-}
-
sub journal_schema_deploy {
my $self = shift;
next unless $j_sources{$s_name};
my $from_rs = $schema->resultset($s_name);
- my ($pk) = $from_rs->result_source->primary_columns;
+ my @pks = $from_rs->result_source->primary_columns;
$from_rs->result_class('DBIx::Class::ResultClass::HashRefInflator');
my $to_rs = $j_schema->resultset("${s_name}AuditHistory");
my @x = $from_rs->search(undef, {
rows => 1_000,
page => $page++,
+ result_class => 'DBIx::Class::ResultClass::HashRefInflator',
})
) {
# get some number of change log IDs to be generated for this page
- my @log_ids = map { $_->id }
- $changelog_rs->populate([
- map {{ changeset_id => $chs_id }} (0 .. $#x)
- ]);
-
+ my @log_ids = map $_->id,
+ $changelog_rs->populate([
+ map +{ changeset_id => $chs_id }, (0 .. $#x)
+ ]);
+
+
+ my @datas;
+ for my $idx (0 .. $#x ) {
+ push @datas, {
+ create_id => $log_ids[$idx],
+ map { $_ => $x[$idx]->{$_} } @pks,
+ }
+ }
# create the audit log entries for the rows in this page
- $log_rs->populate([
- map {{ create_id => $log_ids[$_], id => $x[$_]->{$pk} }} (0 .. $#x)
- ]);
+ $log_rs->populate([@datas]);
# now populate the audit history
$to_rs->populate([