X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FDad.pm;h=569a9f727fccac45c0774b4a9eeb7f41b9a4ca98;hb=da2816e26423ff8d3dff8b3414ce5138bb202b37;hp=1fb35204b5cb25f6c01efb8ca97fa5d3adcebee8;hpb=2e3cccff896e3d8f98cfb3d1069be1c62cc24d69;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/Dad.pm b/lib/DBIx/Class/DeploymentHandler/Dad.pm index 1fb3520..569a9f7 100644 --- a/lib/DBIx/Class/DeploymentHandler/Dad.pm +++ b/lib/DBIx/Class/DeploymentHandler/Dad.pm @@ -3,7 +3,6 @@ package DBIx::Class::DeploymentHandler::Dad; # ABSTRACT: Parent class for DeploymentHandlers use Moose; -use Method::Signatures::Simple; require DBIx::Class::Schema; # loaded for type constraint use Carp::Clan '^DBIx::Class::DeploymentHandler'; use DBIx::Class::DeploymentHandler::Logger; @@ -41,12 +40,15 @@ has schema_version => ( sub _build_schema_version { $_[0]->schema->schema_version } -method install { - log_info { 'installing version ' . $self->to_version }; +sub install { + my $self = shift; + + my $version = (shift @_ || {})->{version} || $self->to_version; + log_info { "installing version $version" }; croak 'Install not possible as versions table already exists in database' if $self->version_storage_is_installed; - my $ddl = $self->deploy; + my $ddl = $self->deploy({ version=> $version }); $self->add_database_version({ version => $self->to_version, @@ -88,9 +90,10 @@ sub downgrade { log_warn { 'no version to run downgrade' } unless $ran_once; } -method backup { +sub backup { + my $self = shift; log_info { 'backing up' }; - $self->storage->backup($self->backup_directory) + $self->schema->storage->backup($self->backup_directory) } __PACKAGE__->meta->make_immutable; @@ -125,8 +128,12 @@ The version (defaults to schema's version) to migrate the database to $dh->install -Deploys the current schema into the database. Populates C with -C and C. +or + + $dh->install({ version => 1 }) + +Deploys the requested version into the database Version defaults to +L. Populates C with C and C. B: you typically need to call C<< $dh->prepare_deploy >> before you call this method.