1 package SQL::Translator::Parser::DBI;
4 use MooseX::Types::Moose qw(Str);
5 use DBI::Const::GetInfoType;
6 use DBI::Const::GetInfo::ANSI;
7 use DBI::Const::GetInfoReturn;
8 use SQL::Translator::Types qw(DBIHandle Schema);
10 extends 'SQL::Translator::Parser';
20 does => 'SQL::Translator::Parser::DBI::Dialect',
22 _tables_list => '_tables_list',
23 _table_columns => '_table_columns',
24 _table_pk_info => '_table_pk_info',
25 _table_fk_info => '_table_fk_info',
26 _table_uniq_info => '_table_uniq_info',
27 _columns_info_for => '_columns_info_for',
28 _extra_column_info => '_extra_column_info',
37 default => sub { shift->translator->schema }
43 local $self->dbh->{RaiseError} = 1;
44 local $self->dbh->{PrintError} = 0;
46 my $dbtypename = $self->dbh->get_info( $GetInfoType{SQL_DBMS_NAME} ) || $self->dbh->{Driver}{Name};
48 my $class = 'SQL::Translator::Parser::DBI::' . $dbtypename;
49 Class::MOP::load_class( $class );
50 my $translator = $class->new( dbh => $self->dbh );
51 $self->translator($translator);
53 my $tables = $self->_tables_list; print Dumper($tables);
55 $self->schema->tables($tables);
57 foreach my $table (keys %$tables) {
58 my $columns = $self->_columns_info_for($table);
59 $self->schema->get_table($table)->columns($columns);
61 # print Dumper($self->schema);