X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FDad.pm;h=1fb35204b5cb25f6c01efb8ca97fa5d3adcebee8;hb=6e9a733d577c24ac4fe4569515fbf94fecf40f5c;hp=093904eb089d9217ed5f26504b429e725b78f03e;hpb=8465e76797613fa0b9c85365c03d26cacbaab31a;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/Dad.pm b/lib/DBIx/Class/DeploymentHandler/Dad.pm index 093904e..1fb3520 100644 --- a/lib/DBIx/Class/DeploymentHandler/Dad.pm +++ b/lib/DBIx/Class/DeploymentHandler/Dad.pm @@ -7,7 +7,8 @@ use Method::Signatures::Simple; require DBIx::Class::Schema; # loaded for type constraint use Carp::Clan '^DBIx::Class::DeploymentHandler'; use DBIx::Class::DeploymentHandler::Logger; -use Log::Contextual ':log', -default_logger => +use DBIx::Class::DeploymentHandler::Types; +use Log::Contextual ':log', -package_logger => DBIx::Class::DeploymentHandler::Logger->new({ env_prefix => 'DBICDH' }); @@ -34,14 +35,14 @@ sub _build_to_version { $_[0]->schema_version } has schema_version => ( is => 'ro', - isa => 'Str', + isa => 'StrSchemaVersion', lazy_build => 1, ); sub _build_schema_version { $_[0]->schema->schema_version } method install { - log_info { '[DBICDH] installing version ' . $self->to_version }; + log_info { 'installing version ' . $self->to_version }; croak 'Install not possible as versions table already exists in database' if $self->version_storage_is_installed; @@ -54,9 +55,11 @@ method install { } sub upgrade { - log_info { '[DBICDH] upgrading' }; + log_info { 'upgrading' }; my $self = shift; + my $ran_once = 0; while ( my $version_list = $self->next_version_set ) { + $ran_once = 1; my ($ddl, $upgrade_sql) = @{ $self->upgrade_single_step({ version_set => $version_list }) ||[]}; @@ -67,21 +70,26 @@ sub upgrade { upgrade_sql => $upgrade_sql, }); } + + log_warn { 'no need to run upgrade' } unless $ran_once; } sub downgrade { - log_info { '[DBICDH] upgrading' }; + log_info { 'downgrading' }; my $self = shift; + my $ran_once = 0; while ( my $version_list = $self->previous_version_set ) { + $ran_once = 1; $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] }); + $self->delete_database_version({ version => $version_list->[0] }); } + log_warn { 'no version to run downgrade' } unless $ran_once; } method backup { - log_info { '[DBICDH] backing up' }; + log_info { 'backing up' }; $self->storage->backup($self->backup_directory) }