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