Make sure overriding deployment_statements is possible from within schemas.
Florian Ragwitz [Mon, 15 Feb 2010 14:50:01 +0000 (14:50 +0000)]
lib/DBIx/Class/Storage/DBI.pm
t/86sqlt.t

index 8fe1bfe..cc5aa4d 100644 (file)
@@ -2442,7 +2442,7 @@ sub deploy {
     }
     $self->_query_end($line);
   };
-  my @statements = $self->deployment_statements($schema, $type, undef, $dir, { %{ $sqltargs || {} }, no_comments => 1 } );
+  my @statements = $schema->deployment_statements($type, undef, $dir, { %{ $sqltargs || {} }, no_comments => 1 } );
   if (@statements > 1) {
     foreach my $statement (@statements) {
       $deploy->( $statement );
index 043aa95..3430cec 100644 (file)
@@ -12,6 +12,14 @@ BEGIN {
     unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')
 }
 
+my $custom_deployment_statements_called = 0;
+
+sub DBICTest::Schema::deployment_statements {
+  $custom_deployment_statements_called = 1;
+  my $self = shift;
+  return $self->next::method(@_);
+}
+
 my $schema = DBICTest->init_schema (no_deploy => 1);
 
 
@@ -69,6 +77,7 @@ my $schema = DBICTest->init_schema (no_deploy => 1);
 
   $schema->deploy; # do not remove, this fires the is() test in the callback above
   ok($deploy_hook_called, 'deploy hook got called');
+  ok($custom_deployment_statements_called, '->deploy used the schemas deploy_statements method');
 }