convert to M::I, release 0.03999_02
[dbsrgits/DBIx-Class-Schema-Loader.git] / lib / DBIx / Class / Schema / Loader / DBI / mysql.pm
index 93fadad..62883a9 100644 (file)
@@ -6,6 +6,8 @@ use base 'DBIx::Class::Schema::Loader::DBI';
 use Carp::Clan qw/^DBIx::Class/;
 use Class::C3;
 
+our $VERSION = '0.03999_02';
+
 =head1 NAME
 
 DBIx::Class::Schema::Loader::DBI::mysql - DBIx::Class::Schema::Loader::DBI mysql Implementation.
@@ -15,9 +17,7 @@ DBIx::Class::Schema::Loader::DBI::mysql - DBIx::Class::Schema::Loader::DBI mysql
   package My::Schema;
   use base qw/DBIx::Class::Schema::Loader/;
 
-  __PACKAGE__->load_from_connection(
-    relationships => 1,
-  );
+  __PACKAGE__->loader_options( debug => 1 );
 
   1;
 
@@ -27,11 +27,27 @@ See L<DBIx::Class::Schema::Loader::Base>.
 
 =cut
 
+# had to override here because MySQL apparently
+#  doesn't support '%' syntax.  Perhaps the other
+#  drivers support this syntax also, but I didn't
+#  want to risk breaking some esoteric DBD::foo version
+#  in a maint release...
+sub _tables_list { 
+    my $self = shift;
+
+    my $dbh = $self->schema->storage->dbh;
+    my @tables = $dbh->tables(undef, $self->db_schema, undef, undef);
+    s/\Q$self->{_quoter}\E//g for @tables;
+    s/^.*\Q$self->{_namesep}\E// for @tables;
+
+    return @tables;
+}
+
 sub _table_fk_info {
     my ($self, $table) = @_;
 
     my $dbh = $self->schema->storage->dbh;
-    my $table_def_ref = $dbh->selectrow_arrayref("SHOW CREATE TABLE $table")
+    my $table_def_ref = $dbh->selectrow_arrayref("SHOW CREATE TABLE `$table`")
         or croak ("Cannot get table definition for $table");
     my $table_def = $table_def_ref->[1] || '';
     
@@ -67,7 +83,7 @@ sub _mysql_table_get_keys {
     if(!exists($self->{_cache}->{_mysql_keys}->{$table})) {
         my %keydata;
         my $dbh = $self->schema->storage->dbh;
-        my $sth = $dbh->prepare("SHOW INDEX FROM $table");
+        my $sth = $dbh->prepare("SHOW INDEX FROM `$table`");
         $sth->execute;
         while(my $row = $sth->fetchrow_hashref) {
             next if $row->{Non_unique};