when running perl scripts in deploy, use a $schema that is generated from the current...
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / ProvideSchema / SchemaLoader.pm
diff --git a/lib/DBIx/Class/DeploymentHandler/ProvideSchema/SchemaLoader.pm b/lib/DBIx/Class/DeploymentHandler/ProvideSchema/SchemaLoader.pm
new file mode 100644 (file)
index 0000000..b8ac00f
--- /dev/null
@@ -0,0 +1,36 @@
+package DBIx::Class::DeploymentHandler::ProvideSchema::SchemaLoader;
+
+use Moose;
+use DBIx::Class::Schema::Loader;
+
+with 'DBIx::Class::DeploymentHandler::HandlesProvideSchema';
+
+has schema => (is=>'ro', required=>1);
+
+my %opts = (
+  naming => { ALL => 'v7'},
+  use_namespaces => 1,
+  debug => $ENV{DBIC_DEPLOYMENTHANDLER_DEBUG}||0);
+
+my $cnt = 0;
+
+sub migration_schema {
+  my $schema = shift->schema->clone;
+  my $name = ref($schema) . $cnt++;
+  DBIx::Class::Schema::Loader::make_schema_at
+    $name, \%opts, [ sub {$schema->storage->dbh} ];
+}
+
+1;
+
+# vim: ts=2 sw=2 expandtab
+
+__END__
+
+=method schema_for_run_files
+
+  my $schema = $dh->schema_for_run_files;
+
+Provides a L<DBIx::Class::Schema> object that we can pass to the Perl deploy
+scripts.  We reverse engineer a C<$schema> from whatever is currently deployed
+to the database using L<DBIx::Class::Schema::Loader>