make more role delegates work
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler.pm
index 1fd2038..a30ec4d 100644 (file)
@@ -7,9 +7,25 @@ use Moose;
 extends 'DBIx::Class::DeploymentHandler::Dad';
 # a single with would be better, but we can't do that
 # see: http://rt.cpan.org/Public/Bug/Display.html?id=46347
-with 'DBIx::Class::DeploymentHandler::WithSqltDeployMethod',
-     'DBIx::Class::DeploymentHandler::WithMonotonicVersions',
-     'DBIx::Class::DeploymentHandler::WithStandardVersionStorage';
+with 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => {
+                       interface_role       => 'DBIx::Class::DeploymentHandler::HandlesDeploy',
+                       class_name           => 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator',
+                       delegate_name        => 'deploy_method',
+                       attributes_to_assume => ['schema'],
+                       attributes_to_copy   => [qw( databases upgrade_directory sql_translator_args )],
+         },
+         'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => {
+                       interface_role       => 'DBIx::Class::DeploymentHandler::HandlesVersioning',
+                       class_name           => 'DBIx::Class::DeploymentHandler::VersionHandler::Monotonic',
+                       delegate_name        => 'version_handler',
+                       attributes_to_assume => [qw( database_version schema_version to_version )],
+         },
+     'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => {
+                       interface_role       => 'DBIx::Class::DeploymentHandler::HandlesVersionStorage',
+                       class_name           => 'DBIx::Class::DeploymentHandler::VersionStorage::Standard',
+                       delegate_name        => 'version_storage',
+                       attributes_to_assume => ['schema'],
+         };
 with 'DBIx::Class::DeploymentHandler::WithReasonableDefaults';
 
 sub prepare_version_storage_install {
@@ -47,9 +63,9 @@ __END__
  my $s = My::Schema->connect(...);
 
  my $dh = DH->new({
-   schema => $s,
-   databases => 'SQLite',
-   sqltargs => { add_drop_table => 0 },
+   schema              => $s,
+   databases           => 'SQLite',
+   sql_translator_args => { add_drop_table => 0 },
  });
 
  $dh->prepare_install;
@@ -62,9 +78,9 @@ or for upgrades:
  my $s = My::Schema->connect(...);
 
  my $dh = DH->new({
-   schema => $s,
-   databases => 'SQLite',
-   sqltargs => { add_drop_table => 0 },
+   schema              => $s,
+   databases           => 'SQLite',
+   sql_translator_args => { add_drop_table => 0 },
  });
 
  $dh->prepare_upgrade(1, 2);