[Bast-commits] r8891 - in DBIx-Class/0.08/trunk: . lib/DBIx lib/DBIx/Class/Schema t

acmoore at dev.catalyst.perl.org acmoore at dev.catalyst.perl.org
Fri Mar 5 21:37:55 GMT 2010


Author: acmoore
Date: 2010-03-05 21:37:55 +0000 (Fri, 05 Mar 2010)
New Revision: 8891

Modified:
   DBIx-Class/0.08/trunk/Changes
   DBIx-Class/0.08/trunk/lib/DBIx/Class.pm
   DBIx-Class/0.08/trunk/lib/DBIx/Class/Schema/Versioned.pm
   DBIx-Class/0.08/trunk/t/94versioning.t
Log:
Fix regression where SQL files with comments were not handled properly by ::Schema::Versioned.



Modified: DBIx-Class/0.08/trunk/Changes
===================================================================
--- DBIx-Class/0.08/trunk/Changes	2010-03-05 18:56:38 UTC (rev 8890)
+++ DBIx-Class/0.08/trunk/Changes	2010-03-05 21:37:55 UTC (rev 8891)
@@ -1,5 +1,7 @@
 Revision history for DBIx::Class
 
+        - Fix regression where SQL files with comments were not
+          handled properly by ::Schema::Versioned.
         - Fix regression on not properly throwing when $obj->relationship
           is unresolvable
         - Add has_relationship method to row objects

Modified: DBIx-Class/0.08/trunk/lib/DBIx/Class/Schema/Versioned.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/DBIx/Class/Schema/Versioned.pm	2010-03-05 18:56:38 UTC (rev 8890)
+++ DBIx-Class/0.08/trunk/lib/DBIx/Class/Schema/Versioned.pm	2010-03-05 21:37:55 UTC (rev 8891)
@@ -709,12 +709,12 @@
   my @data = split /\n/, join '', <$fh>;
   close $fh;
 
-  @data = grep {
-     $_ &&
-     !/^--/ &&
-     !/^(BEGIN|BEGIN TRANSACTION|COMMIT)/m
-  } split /;/,
-     join '', @data;
+  @data = split /;/,
+     join '',
+       grep { $_ &&
+              !/^--/  &&
+              !/^(BEGIN|BEGIN TRANSACTION|COMMIT)/mi }
+         @data;
 
   return \@data;
 }

Modified: DBIx-Class/0.08/trunk/lib/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/DBIx/Class.pm	2010-03-05 18:56:38 UTC (rev 8890)
+++ DBIx-Class/0.08/trunk/lib/DBIx/Class.pm	2010-03-05 21:37:55 UTC (rev 8891)
@@ -222,6 +222,8 @@
 
 aherzog: Adam Herzog <adam at herzogdesigns.com>
 
+amoore: Andrew Moore <amoore at cpan.org>
+
 andyg: Andy Grundman <andy at hybridized.org>
 
 ank: Andres Kievsky

Modified: DBIx-Class/0.08/trunk/t/94versioning.t
===================================================================
--- DBIx-Class/0.08/trunk/t/94versioning.t	2010-03-05 18:56:38 UTC (rev 8890)
+++ DBIx-Class/0.08/trunk/t/94versioning.t	2010-03-05 21:37:55 UTC (rev 8891)
@@ -165,6 +165,37 @@
   is($schema_v3->get_db_version(), '3.0', 'db version number upgraded');
 }
 
+# Now, try a v1 -> v3 upgrade with a file that has comments strategically placed in it.
+# First put the v1 schema back again...
+{
+  # drop all the tables...
+  eval { $schema_v1->storage->dbh->do('drop table ' . $version_table_name) };
+  eval { $schema_v1->storage->dbh->do('drop table ' . $old_table_name) };
+  eval { $schema_v1->storage->dbh->do('drop table TestVersion') };
+
+  {
+    local $DBICVersion::Schema::VERSION = '1.0';
+    $schema_v1->deploy;
+  }
+  is($schema_v1->get_db_version(), '1.0', 'get_db_version 1.0 ok');
+}
+
+# add a "harmless" comment before one of the statements.
+system( qq($^X -pi -e "s/ALTER/-- this is a comment\nALTER/" $fn->{trans_v23};) );
+
+# Then attempt v1 -> v3 upgrade
+{
+  local $SIG{__WARN__} = sub { warn if $_[0] !~ /Attempting upgrade\.$/ };
+  $schema_v3->upgrade();
+  is($schema_v3->get_db_version(), '3.0', 'db version number upgraded to 3.0');
+
+  # make sure that the column added after the comment is actually added.
+  lives_ok ( sub {
+    $schema_v3->storage->dbh->do('select ExtraColumn from TestVersion');
+  }, 'new column created');
+}
+
+
 # check behaviour of DBIC_NO_VERSION_CHECK env var and ignore_version connect attr
 {
   my $schema_version = DBICVersion::Schema->connect($dsn, $user, $pass);




More information about the Bast-commits mailing list