Carp = 0
Carp::Clan = 0
aliased = 0
+DBIx::Class::Schema::Loader = 0.07017
with 'DBIx::Class::DeploymentHandler::HandlesDeploy';
+with 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => {
+ interface_role => 'DBIx::Class::DeploymentHandler::HandlesProvideSchema',
+ class_name => 'DBIx::Class::DeploymentHandler::ProvideSchema::SchemaLoader',
+ delegate_name => 'schema_provider',
+ attributes_to_assume => ['schema'],
+ attributes_to_copy => [qw( schema )],
+ };
+
has ignore_ddl => (
isa => 'Bool',
is => 'ro',
if ($@) {
croak "$filename failed to compile: $@";
} elsif (ref $fn eq 'CODE') {
- $fn->($self->schema, $versions)
+ $fn->($self->migration_schema, $versions)
} else {
croak "$filename should define an anonymouse sub that takes a schema but it didn't!";
}
--- /dev/null
+package DBIx::Class::DeploymentHandler::HandlesProvideSchema;
+use Moose::Role;
+
+# ABSTRACT: Interface for providing a $schema to the deployment scripts
+
+requires 'migration_schema';
+
+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.
+
+=head1 KNOWN IMPLEMENTATIONS
+
+=over
+
+=item *
+
+L<DBIx::Class::DeploymentHandler::ProvideSchema::FromCurrent>
+
+=item *
+
+L<DBIx::Class::DeploymentHandler::ProvideSchema::SQL::SchemaLoader>
+
+=back
+
--- /dev/null
+package DBIx::Class::DeploymentHandler::ProvideSchema::SQL::FromCurrent;
+
+use Moose;
+with 'DBIx::Class::DeploymentHandler::HandlesProvideSchema';
+
+has schema => (is=>'ro', required=>1);
+
+sub migration_schema { shift->schema }
+
+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 just return whatever C<$schema> you passed when you instantiated
+the L<DBIx::Class::DeploymentHandler> object.
--- /dev/null
+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>