X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FHandlesDeploy.pm;h=83702f12fb743f406141531f2bfcfc2a07c83ed4;hb=be140a5f1f8ab40705bf4cbedb74761c4994a765;hp=d328b52d8d20788751e22346cce1e17c89666564;hpb=76d311e71dd647d82d18271d12e86baf11f5e525;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/HandlesDeploy.pm b/lib/DBIx/Class/DeploymentHandler/HandlesDeploy.pm index d328b52..83702f1 100644 --- a/lib/DBIx/Class/DeploymentHandler/HandlesDeploy.pm +++ b/lib/DBIx/Class/DeploymentHandler/HandlesDeploy.pm @@ -1,15 +1,124 @@ package DBIx::Class::DeploymentHandler::HandlesDeploy; use Moose::Role; -requires 'prepare_install'; +# ABSTRACT: Interface for deploy methods + +requires 'preinstall'; + +requires 'prepare_deploy'; +requires 'deploy'; + +requires 'prepare_resultsource_install'; +requires 'install_resultsource'; + requires 'prepare_upgrade'; +requires 'upgrade_single_step'; + requires 'prepare_downgrade'; -requires '_upgrade_single_step'; -requires '_downgrade_single_step'; -requires '_deploy'; +requires 'downgrade_single_step'; 1; +# vim: ts=2 sw=2 expandtab + __END__ -vim: ts=2 sw=2 expandtab +=method preinstall + + $dh->preinstall({ + version => 1, + storage_type => 'SQLite' + }); + +Run scripts before deploying to the database + +=method prepare_deploy + + $dh->prepare_deploy + +Generate the needed data files to install the schema to the database. + +=method deploy + + $dh->deploy({ version => 1 }) + +Deploy the schema to the database. + +=method prepare_resultsource_install + + $dh->prepare_resultsource_install({ + result_source => $resultset->result_source, + }) + +Takes a L and generates a single migration file to +create the resultsource's table. + +=method install_resultsource + + $dh->install_resultsource({ + result_source => $resultset->result_source, + version => 1, + }) + +Takes a L and runs a single migration file to +deploy the resultsource's table. + +=method prepare_upgrade + + $dh->prepare_upgrade({ + from_version => 1, + to_version => 2, + version_set => [1, 2] + }); + +Takes two versions and a version set. This basically is supposed to generate +the needed C to migrate up from the first version to the second version. +The version set uniquely identifies the migration. + +=method prepare_downgrade + + $dh->prepare_downgrade({ + from_version => 1, + to_version => 2, + version_set => [1, 2] + }); + +Takes two versions and a version set. This basically is supposed to generate +the needed C to migrate down from the first version to the second version. +The version set uniquely identifies the migration and should match it's +respective upgrade version set. + +=method upgrade_single_step + + my ($ddl, $sql) = @{ + $dh->upgrade_single_step({ version_set => $version_set }) + ||[]} + +Call a single upgrade migration. Takes a version set as an argument. +Optionally return C<< [ $ddl, $upgrade_sql ] >> where C<$ddl> is the DDL for +that version of the schema and C<$upgrade_sql> is the SQL that was run to +upgrade the database. + +=method downgrade_single_step + + $dh->downgrade_single_step($version_set); + +Call a single downgrade migration. Takes a version set as an argument. +Optionally return C<< [ $ddl, $upgrade_sql ] >> where C<$ddl> is the DDL for +that version of the schema and C<$upgrade_sql> is the SQL that was run to +upgrade the database. + +=head1 KNOWN IMPLEMENTATIONS + +=over + +=item * + +L + +=item * + +L + +=back +