1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
use strict;
use warnings;
package TestSchema::Table;
use parent 'DBIx::Class';
__PACKAGE__->load_components(qw/DynamicDefault Core/);
__PACKAGE__->table('fubar');
__PACKAGE__->add_columns(
quux => {
data_type => 'integer',
dynamic_default_on_create => 'quux_default',
},
garply => {
data_type => 'integer',
is_nullable => 1,
dynamic_default_on_update => sub { return $$ },
},
foo => {
data_type => 'integer',
accessor => 'corge',
dynamic_default_on_create => \&corge_default,
dynamic_default_on_update => 'corge_default',
},
fred => { data_type => 'text' },
);
__PACKAGE__->set_primary_key(qw/quux/);
{
my $i = 0;
sub quux_default {
return ++$i;
}
sub corge_default {
my ($self) = @_;
return 'update' . ++$i if $self->in_storage;
return 'create';
}
}
1;
|