pass sqlite_version to SQLT
Rafael Kitover [Sat, 31 Oct 2009 20:04:39 +0000 (20:04 +0000)]
lib/DBIx/Class/Storage/DBI/SQLite.pm
t/storage/replication.t

index 1e5f298..48d55fe 100644 (file)
@@ -47,6 +47,22 @@ sub backup
   return $backupfile;
 }
 
+sub deployment_statements {
+  my $self = shift;;
+  my ($schema, $type, $version, $dir, $sqltargs, @rest) = @_;
+
+  $sqltargs ||= {};
+
+  my $sqlite_version = $self->_get_dbh->{sqlite_version};
+
+  # numify, SQLT does a numeric comparison
+  $sqlite_version =~ s/^(\d+) \. (\d+) (?: \. (\d+)) .*/${1}.${2}/x;
+
+  $sqltargs->{producer_args}{sqlite_version} = $sqlite_version;
+
+  $self->next::method($schema, $type, $version, $dir, $sqltargs, @rest);
+}
+
 sub datetime_parser_type { return "DateTime::Format::SQLite"; } 
 
 1;
index 1cd2d90..c7485b4 100644 (file)
@@ -66,7 +66,7 @@ TESTSCHEMACLASSES: {
 
     sub init_schema {
         # current SQLT SQLite producer does not handle DROP TABLE IF EXISTS, trap warnings here
-        local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /no such table.+DROP TABLE/ };
+        local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /no such table.+DROP TABLE/s };
 
         my ($class, $schema_method) = @_;