From: Rafael Kitover Date: Tue, 7 Jun 2011 05:55:40 +0000 (-0400) Subject: more work on multi-db_schema X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-Schema-Loader.git;a=commitdiff_plain;h=refs%2Fheads%2Fregex_capture_issues more work on multi-db_schema --- diff --git a/lib/DBIx/Class/Schema/Loader/Base.pm b/lib/DBIx/Class/Schema/Loader/Base.pm index 11065f4..74f9969 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -2010,7 +2010,7 @@ sub _setup_src_meta { . (ref $table_name eq 'SCALAR' ? $$table_name : $table_name); # be careful to not create refs Data::Dump can "optimize" - $full_table_name = \do {"".$full_table_name} if ref $table_name; + $full_table_name = \do {"".$full_table_name} if ref $table_name eq 'SCALAR'; $self->_dbic_stmt($table_class, 'table', $full_table_name); diff --git a/lib/DBIx/Class/Schema/Loader/DBI.pm b/lib/DBIx/Class/Schema/Loader/DBI.pm index f052bb7..dce5f27 100644 --- a/lib/DBIx/Class/Schema/Loader/DBI.pm +++ b/lib/DBIx/Class/Schema/Loader/DBI.pm @@ -101,7 +101,7 @@ sub _tables_list { my ($table, $type) = @_ ? @_ : ('%', '%'); my $dbh = $self->schema->storage->dbh; - my @tables = $dbh->tables(undef, $self->db_schema, $table, $type); + my @tables = $dbh->tables(undef, $table->schema, $table, $type); my $qt = qr/[\Q$self->{_quoter}\E"'`\[\]]/; @@ -212,7 +212,7 @@ sub _table_pk_info { my $dbh = $self->schema->storage->dbh; my @primary = try { - $dbh->primary_key('', $self->db_schema, $table); + $dbh->primary_key('', $table->schema, $table); } catch { warn "Cannot find primary keys for this driver: $_"; @@ -243,7 +243,7 @@ sub _table_uniq_info { } my %indices; - my $sth = $dbh->statistics_info(undef, $self->db_schema, $table, 1, 1); + my $sth = $dbh->statistics_info(undef, $table->schema, $table, 1, 1); while(my $row = $sth->fetchrow_hashref) { # skip table-level stats, conditional indexes, and any index missing # critical fields @@ -274,8 +274,8 @@ sub _table_fk_info { my $dbh = $self->schema->storage->dbh; my $sth = try { - $dbh->foreign_key_info( '', $self->db_schema, '', - '', $self->db_schema, $table ); + $dbh->foreign_key_info( '', $table->schema, '', + '', $table->schema, $table ); } catch { warn "Cannot introspect relationships for this driver: $_"; @@ -323,7 +323,7 @@ sub _columns_info_for { my %result; if ($dbh->can('column_info')) { - my $sth = $self->_dbh_column_info($dbh, undef, $self->db_schema, $table, '%' ); + my $sth = $self->_dbh_column_info($dbh, undef, $table->schema, $table, '%' ); while ( my $info = $sth->fetchrow_hashref() ){ my $column_info = {}; $column_info->{data_type} = lc $info->{TYPE_NAME};