]> Dogcows Code - chaz/p5-DBIx-Class-ResultSet-RecursiveUpdate/commitdiff
checking for table existande before adding add_drop_table
authorzby <zby@dorotka-pc.(none)>
Sat, 6 Feb 2010 19:15:37 +0000 (20:15 +0100)
committerzby <zby@dorotka-pc.(none)>
Sat, 6 Feb 2010 19:15:37 +0000 (20:15 +0100)
t/lib/DBSchema.pm

index e72915541475c51af4f6e74e160743d516eeba49..9b1dca6c18e353d713d30ed701aff7f391cdcbaa 100644 (file)
@@ -10,12 +10,21 @@ use DateTime;
 
 __PACKAGE__->load_namespaces( default_resultset_class => '+DBIx::Class::ResultSet::RecursiveUpdate' );
 
+sub tables_exist {
+    my ( $dsn, $user, $pass ) = @_;
+    my $dbh = DBI->connect($dsn, $user, $pass, );
+    return $dbh->tables( '%', '%', 'dvd', );
+}
+
+
 sub get_test_schema {
     my ( $dsn, $user, $pass ) = @_;
     $dsn ||= 'dbi:SQLite:dbname=t/var/dvdzbr.db';
     warn "testing $dsn";
     my $schema = __PACKAGE__->connect( $dsn, $user, $pass, {} );
-    $schema->deploy({ add_drop_table => 1, });
+    my $deploy_attrs;
+    $deploy_attrs->{add_drop_table} = 1 if tables_exist( $dsn, $user, $pass );
+    $schema->deploy( $deploy_attrs );
     $schema->populate('User', [
         [ qw/username name password / ],
         [ 'jgda', 'Jonas Alves', ''],
This page took 0.021708 seconds and 4 git commands to generate.