X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FDad.pm;h=92bbb9337023eb83dadff79df67e186e11749025;hb=be140a5f1f8ab40705bf4cbedb74761c4994a765;hp=fcdd868b69746247719b91f299c0aab48b6bec5b;hpb=ed1721b92e5774426f63bbf69bc4b2c997fbf62e;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/Dad.pm b/lib/DBIx/Class/DeploymentHandler/Dad.pm index fcdd868..92bbb93 100644 --- a/lib/DBIx/Class/DeploymentHandler/Dad.pm +++ b/lib/DBIx/Class/DeploymentHandler/Dad.pm @@ -1,5 +1,7 @@ package DBIx::Class::DeploymentHandler::Dad; +# ABSTRACT: Parent class for DeploymentHandlers + use Moose; use Method::Signatures::Simple; require DBIx::Class::Schema; # loaded for type constraint @@ -9,7 +11,6 @@ has schema => ( isa => 'DBIx::Class::Schema', is => 'ro', required => 1, - handles => ['schema_version'], ); has backup_directory => ( @@ -23,7 +24,14 @@ has to_version => ( lazy_build => 1, ); -sub _build_to_version { $_[0]->schema->schema_version } +sub _build_to_version { $_[0]->schema_version } + +has schema_version => ( + is => 'ro', + lazy_build => 1, +); + +sub _build_schema_version { $_[0]->schema->schema_version } method install { croak 'Install not possible as versions table already exists in database' @@ -40,7 +48,9 @@ method install { sub upgrade { my $self = shift; while ( my $version_list = $self->next_version_set ) { - my ($ddl, $upgrade_sql) = @{$self->upgrade_single_step($version_list)||[]}; + my ($ddl, $upgrade_sql) = @{ + $self->upgrade_single_step({ version_set => $version_list }) + ||[]}; $self->add_database_version({ version => $version_list->[-1], @@ -53,7 +63,7 @@ sub upgrade { sub downgrade { my $self = shift; while ( my $version_list = $self->previous_version_set ) { - $self->downgrade_single_step($version_list); + $self->downgrade_single_step({ version_set => $version_list }); # do we just delete a row here? I think so but not sure $self->delete_database_version({ version => $version_list->[-1] }); @@ -66,6 +76,10 @@ __PACKAGE__->meta->make_immutable; 1; +# vim: ts=2 sw=2 expandtab + +__END__ + =pod =attr schema @@ -73,9 +87,14 @@ __PACKAGE__->meta->make_immutable; The L (B) that is used to talk to the database and generate the DDL. +=attr schema_version + +The version that the schema is currently at. Defaults to +C<< $self->schema->schema_version >>. + =attr backup_directory -The directory that backups are stored in +The directory where backups are stored =attr to_version @@ -88,7 +107,7 @@ The version (defaults to schema's version) to migrate the database to Deploys the current schema into the database. Populates C with C and C. -B: you typically need to call C<< $dh->prepare_install >> before you call +B: you typically need to call C<< $dh->prepare_deploy >> before you call this method. B: you cannot install on top of an already installed database @@ -107,7 +126,7 @@ returned from L. $dh->downgrade Downgrades the database one step at a time till L -returns C. Each downgrade step will delete a Cfrom the +returns C. Each downgrade step will delete a C from the version storage. =method backup @@ -163,13 +182,13 @@ should probably implement these too, even if they are no-ops. see L -=head2 prepare_install +=head2 prepare_deploy -see L +see L =head2 prepare_resultsource_install -see L +see L =head2 install_resultsource @@ -183,8 +202,6 @@ see L see L -=back - =head2 SUBCLASSING All of the methods mentioned in L and @@ -199,6 +216,3 @@ L, L, and L. -__END__ - -vim: ts=2 sw=2 expandtab