1 package SQL::Translator;
2 use namespace::autoclean;
4 use MooseX::Types::Moose qw(Str);
5 use SQL::Translator::Types qw(DBIHandle);
24 predicate => 'has_dbh',
30 predicate => 'has_ddl',
38 my $parser_class = 'SQL::Translator::Parser';
39 my $producer_class = 'SQL::Translator::Producer';
40 my $producer_role = $producer_class . '::' . $self->producer;
42 Class::MOP::load_class($parser_class);
44 my $parser = $parser_class->new({ dbh => $self->dbh });
46 Class::MOP::load_class($producer_class);
47 Class::MOP::load_class($producer_role);
49 my $producer = $producer_class->new({ schema => $parser->parse });
50 $producer_role->meta->apply($producer);
54 __PACKAGE__->meta->make_immutable;