Commit | Line | Data |
035b8503 |
1 | use MooseX::Declare; |
2 | role SQL::Translator::Object::Compat { |
bebe11d5 |
3 | use MooseX::Types qw(Any ArrayRef Int Str); |
f228f068 |
4 | use SQL::Translator::Types qw(Column Constraint Index Procedure Table Trigger View); |
bebe11d5 |
5 | |
035b8503 |
6 | use MooseX::MultiMethods; |
7 | |
8 | multi method fields(Str $columns) { |
452c34e6 |
9 | $self->clear_columns; |
035b8503 |
10 | my @columns = split /\s*,\s*/, $columns; |
11 | for my $column (@columns) { |
12 | die "Column '$column' does not exist!" unless $self->table->exists_column($column); |
13 | $self->add_column($self->table->get_column($column)); |
14 | } |
15 | $self->column_ids; |
16 | } |
17 | |
18 | multi method fields(ArrayRef $columns) { |
452c34e6 |
19 | $self->clear_columns; |
035b8503 |
20 | for my $column (@$columns) { |
21 | die "Column '$column' does not exist!" unless $self->table->exists_column($column); |
22 | $self->add_column($self->table->get_column($column)); |
23 | } |
24 | $self->column_ids; |
25 | } |
26 | |
a20ea10d |
27 | multi method fields { $self->column_ids } |
035b8503 |
28 | |
bebe11d5 |
29 | method add_field(Column $column does coerce) { $self->add_column($column) } |
30 | |
bebe11d5 |
31 | method drop_column(Column|Str $column, Int :$cascade = 0) { $self->remove_column($column, cascade => $cascade) } |
bebe11d5 |
32 | method drop_constraint(Constraint|Str $constraint) { $self->remove_constraint($constraint) } |
e8ca928c |
33 | method drop_index(Index|Str $index) { $self->remove_index($index) } |
f228f068 |
34 | method drop_procedure(Procedure|Str $procedure) { $self->remove_procedure($procedure) } |
e8ca928c |
35 | method drop_table(Table|Str $table, Int :$cascade = 0) { $self->remove_table($table, cascade => $cascade) } |
36 | method drop_trigger(Trigger|Str $trigger) { $self->remove_trigger($trigger) } |
ef1b41c6 |
37 | method drop_view(View|Str $view) { $self->remove_view($view) } |
bebe11d5 |
38 | |
035b8503 |
39 | method get_fields { $self->get_columns } |
40 | method get_field { $self->get_column } |
41 | method field_names { $self->column_ids } |
42 | method reference_fields { $self->reference_columns } |
43 | } |