X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler.pm;h=fc1cc29606715504fd264228ac29407fc4aa634f;hb=36821446c34719fc2db68bc53f18b4eef20d2aa7;hp=0e26850ee6fdd22bdbfc62e0d48517513fe60be1;hpb=d794b8ce62bdbdab42015f4a9ab93946f3f97af5;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler.pm b/lib/DBIx/Class/DeploymentHandler.pm index 0e26850..fc1cc29 100644 --- a/lib/DBIx/Class/DeploymentHandler.pm +++ b/lib/DBIx/Class/DeploymentHandler.pm @@ -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 { @@ -29,8 +45,8 @@ sub install_version_storage { } sub prepare_install { - $_[0]->prepare_deploy; - $_[0]->prepare_version_storage_install; + $_[0]->prepare_deploy; + $_[0]->prepare_version_storage_install; } __PACKAGE__->meta->make_immutable; @@ -47,12 +63,12 @@ __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_deploy; + $dh->prepare_install; $dh->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); @@ -134,6 +150,13 @@ L. Creates the needed C<.sql> file to install the version storage and not the rest of the tables +=method prepare_install + + $dh->prepare_install + +First prepare all the tables to be installed and the prepare just the version +storage + =method install_version_storage $dh->install_version_storage