some shuffling/refactoring of the relationship code, and a TODO file added
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / mysql.pm
index 9250593..f94b159 100644 (file)
@@ -25,15 +25,15 @@ See L<DBIx::Class::Schema::Loader>.
 
 =cut
 
-sub _db_classes {
+sub _loader_db_classes {
     return qw/DBIx::Class::PK::Auto::MySQL/;
 }
 
-sub _relationships {
+sub _loader_relationships {
     my $class   = shift;
     my @tables = $class->tables;
     my $dbh    = $class->storage->dbh;
-    my $dsn    = $class->loader_data->{_datasource}[0];
+    my $dsn    = $class->storage->connect_info->[0];
     my %conn   =
       $dsn =~ m/\Adbi:\w+(?:\(.*?\))?:(.+)\z/i
       && index( $1, '=' ) >= 0
@@ -42,7 +42,7 @@ sub _relationships {
     my $dbname = $conn{database} || $conn{dbname} || $conn{db};
     die("Can't figure out the table name automatically.") if !$dbname;
 
-    my $quoter = $dbh->get_info(29);
+    my $quoter = $dbh->get_info(29) || q{`};
 
     foreach my $table (@tables) {
         my $query = "SHOW CREATE TABLE ${dbname}.${table}";
@@ -51,7 +51,7 @@ sub _relationships {
         $sth->execute;
         my $table_def = $sth->fetchrow_arrayref->[1] || '';
         
-        my (@reldata) = ($table_def =~ /CONSTRAINT `.*` FOREIGN KEY \(`(.*)`\) REFERENCES `(.*)` \(`(.*)`\)/g);
+        my (@reldata) = ($table_def =~ /CONSTRAINT `.*` FOREIGN KEY \(`(.*)`\) REFERENCES `(.*)` \(`(.*)`\)/ig);
 
         while (scalar @reldata > 0) {
             my $cols = shift @reldata;
@@ -64,32 +64,32 @@ sub _relationships {
               if @cols != @f_cols;
             
             my $cond = {};
-            for(my $i = 0 ; $i < @cols; $i++) {
+            for(my $i = 0; $i < @cols; $i++) {
                 $cond->{$f_cols[$i]} = $cols[$i];
             }
 
-            eval { $class->_belongs_to_many( $table, $f_table, $cond) };
-            warn qq/\# belongs_to_many failed "$@"\n\n/ if $@ && $class->debug_loader;
+            eval { $class->_loader_make_cond_rel( $table, $f_table, $cond) };
+            warn qq/\# belongs_to_many failed "$@"\n\n/ if $@ && $class->_loader_debug;
         }
         
         $sth->finish;
     }
 }
 
-sub _tables {
+sub _loader_tables {
     my $class = shift;
     my $dbh    = $class->storage->dbh;
     my @tables;
+    my $quoter = $dbh->get_info(29) || q{`};
     foreach my $table ( $dbh->tables ) {
-        my $quoter = $dbh->get_info(29);
-        $table =~ s/$quoter//g if ($quoter);
+        $table =~ s/$quoter//g;
         push @tables, $1
           if $table =~ /\A(\w+)\z/;
     }
     return @tables;
 }
 
-sub _table_info {
+sub _loader_table_info {
     my ( $class, $table ) = @_;
     my $dbh    = $class->storage->dbh;