This is the sql that gets run before deleting a single row
INSERT INTO shadow_tracks( rel_shadow_cds_lifecycle, shadow_stage, shadow_timestamp, shadow_val_position, shadow_val_title, shadowed_curpk_cd_id, shadowed_curpk_position, shadowed_lifecycle )
VALUES( (
SELECT me.rel_shadow_cds_lifecycle
FROM shadow_tracks me
WHERE shadowed_lifecycle = (
SELECT shadows.shadowed_lifecycle
FROM tracks me
JOIN shadow_tracks shadows
ON shadows.shadowed_curpk_cd_id = me.cd_id AND shadows.shadowed_curpk_position = me.position
WHERE cd_id = '4' AND position = '1'
LIMIT '1'
)
LIMIT '1'
), '0', '13086697951239', '1', 'dear_mr_president', '4', '1', (
SELECT shadows.shadowed_lifecycle
FROM tracks me
JOIN shadow_tracks shadows
ON shadows.shadowed_curpk_cd_id = me.cd_id AND shadows.shadowed_curpk_position = me.position
WHERE cd_id = '4' AND position = '1'
LIMIT '1'
) )
my $tea = $rs->create({ name => 'sencha' });$tea->update({ name => 'Sencha' });$tea->delete
package MyApp::Schema; use parent 'DBIx::Class::Schema'; my $p = __PACKAGE__; $p->load_components(qw/Schema::Shadow/); $p->shadow_result_base_class( '::BaseShadowResult' ); $p->shadow_changeset_result( '::Changeset' ); $p->load_namespaces; 1;
package MyApp::Schema::Result::Artist;
use parent 'MyApp::Schema::Result';
my $p = __PACKAGE__;
# defaults to all columns
$p->load_components('Shadow');
$p->shadow_columns([qw(id name)]);
$p->table('artists');
$p->add_columns(
id => { data_type => 'int' },
name => { data_type => 'varchar', size => 30 },
notes => { data_type => 'text' },
);
$p->set_primary_key('id');
$p->has_many(cds => 'MyApp::Schema::Result::CD', 'artist_id');
1;
package MyApp::Schema::Result::Changeset;
use parent 'MyApp::Schema::Result';
my $p = __PACKAGE__;
# defaults to all columns
$p->table('changeset');
$p->add_columns(
id => { data_type => 'int' },
timestamp => { data_type => 'bigint' },
user_id => { data_type => 'int' },
);
$p->set_primary_key('id');
$p->belongs_to(user => 'MyApp::Schema::Result::User', 'user_id');
sub new_changeset {
my ($class, $rsrc, $params) = @_;
$rsrc->resultset->new_result($params);
}
1;
$schema->changeset_do({
system => undef,
user_id => 5,
session_id => 76
}, sub {
...
})
$rs->shadow_version(5)
$rs->shadows_before( revision => 5 );
$rs->shadows_before( datetime => $dt );
$rs->shadows_before( changeset => 5 );
$rs->change( last_name => 'Cantrell', 'Schmidt' );
$rs->shadows_after( datetime => DateTime->now->truncate(to => 'month') )->shadows_before( datetime => DateTime->now->add(days => 7) )->change( log_location => '/var/log', '/home/frew/log' )
my $user_phantom = $shadow->as_result
$user_phantom->roles->related_resultset('permissions')
my ($type, $from, $to) = $shadow->as_diff
$type =~ /insert|update|delete/
while (my $row = $row->next_shadow) {
...;
}