Commit | Line | Data |
d27ed438 |
1 | package DBIx::Class::Schema::Journal::DB::AuditHistory; |
2 | |
34b144a0 |
3 | use base 'DBIx::Class::Core'; |
59c8adb5 |
4 | |
5 | sub journal_define_table { |
6 | my ( $class, $source ) = @_; |
7 | |
34b144a0 |
8 | $class->table($source->name . '_audit_history'); |
59c8adb5 |
9 | |
41daf590 |
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 | |
34b144a0 |
24 | $class->set_primary_key('audit_history_id'); |
59c8adb5 |
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 | ); |
34b144a0 |
37 | |
59c8adb5 |
38 | $hist_info{is_nullable} = 1; |
39 | |
40 | $class->add_column($column => \%hist_info); |
41 | } |
34b144a0 |
42 | |
43 | $class->belongs_to(change => 'DBIx::Class::Schema::Journal::DB::ChangeLog', 'audit_change_id'); |
59c8adb5 |
44 | } |
d27ed438 |
45 | |
d27ed438 |
46 | 1; |