pass postgres_version in producer_args when deploying to Pg
Rafael Kitover [Tue, 1 Jun 2010 14:56:48 +0000 (14:56 +0000)]
lib/DBIx/Class/Storage/DBI/Pg.pm
lib/DBIx/Class/Storage/DBI/SQLite.pm

index 4428b1f..63f811a 100644 (file)
@@ -199,6 +199,19 @@ sub _svp_rollback {
     $self->_get_dbh->pg_rollback_to($name);
 }
 
+sub deployment_statements {
+  my $self = shift;;
+  my ($schema, $type, $version, $dir, $sqltargs, @rest) = @_;
+
+  $sqltargs ||= {};
+
+  if (my $version = $self->_server_info->{normalized_dbms_version}) {
+    $sqltargs->{producer_args}{postgres_version} = $version;
+  }
+
+  $self->next::method($schema, $type, $version, $dir, $sqltargs, @rest);
+}
+
 1;
 
 __END__
index 186cb60..b30d2ef 100644 (file)
@@ -50,12 +50,8 @@ sub deployment_statements {
 
   $sqltargs ||= {};
 
-  # it'd be cool to use the normalized perl-style version but this needs sqlt hacking as well
-  if (my $sqlite_version = $self->_server_info->{dbms_version}) {
-    # numify, SQLT does a numeric comparison
-    $sqlite_version =~ s/^(\d+) \. (\d+) (?: \. (\d+))? .*/${1}.${2}/x;
-
-    $sqltargs->{producer_args}{sqlite_version} = $sqlite_version if $sqlite_version;
+  if (my $version = $self->_server_info->{normalized_dbms_version}) {
+    $sqltargs->{producer_args}{sqlite_version} = $version;
   }
 
   $self->next::method($schema, $type, $version, $dir, $sqltargs, @rest);