release v0.900201
[dbsrgits/DBIx-Class-Journal.git] / lib / DBIx / Class / Schema / Journal / DB / AuditHistory.pm
1 package DBIx::Class::Schema::Journal::DB::AuditHistory;
2
3 use base 'DBIx::Class::Core';
4
5 sub journal_define_table {
6     my ( $class, $source, $schema_class ) = @_;
7
8     $class->table($source->name . '_audit_history');
9
10     $class->add_columns(
11         audit_history_id => {
12             data_type => 'integer',
13             is_nullable => 0,
14             is_primary_key => 1,
15             is_auto_increment => 1,
16         },
17         audit_change_id => {
18             data_type => 'integer',
19             is_nullable => 0,
20             is_foreign_key => 1,
21         },
22     );
23
24     $class->set_primary_key('audit_history_id');
25
26     foreach my $column ( $source->columns ) {
27         my $info = $source->column_info($column);
28
29         my %hist_info = %$info;
30
31         delete $hist_info{$_} for qw(
32             is_foreign_key
33             is_primary_key
34             is_auto_increment
35             default_value
36         );
37
38         $hist_info{is_nullable} = 1;
39
40         $class->add_column($column => \%hist_info);
41     }
42
43     $class->belongs_to(change => "${schema_class}::ChangeLog", 'audit_change_id');
44 }
45
46 1;