X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FVersionHandler%2FDatabaseToSchemaVersions.pm;h=adaaf16802d3c8fcedea1b4698460bee16bb3806;hb=a976d6e46695d7015239ee4c30cb3708f4ce7942;hp=7be88f4cc68179a97794395dd2961295e6a6960d;hpb=b539a2166a39a25bb3d1d91b47909500b55b3ee6;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/VersionHandler/DatabaseToSchemaVersions.pm b/lib/DBIx/Class/DeploymentHandler/VersionHandler/DatabaseToSchemaVersions.pm index 7be88f4..adaaf16 100644 --- a/lib/DBIx/Class/DeploymentHandler/VersionHandler/DatabaseToSchemaVersions.pm +++ b/lib/DBIx/Class/DeploymentHandler/VersionHandler/DatabaseToSchemaVersions.pm @@ -1,33 +1,36 @@ package DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions; -use Moose; -use Method::Signatures::Simple; +use Moo; +use Sub::Quote 'quote_sub'; +use MooX::Types::MooseLike::Base qw(Str Bool); + +# ABSTRACT: Go straight from Database to Schema version with 'DBIx::Class::DeploymentHandler::HandlesVersioning'; has schema_version => ( - isa => 'Str', + isa => Str, is => 'ro', required => 1, ); has database_version => ( - isa => 'Str', + isa => Str, is => 'ro', required => 1, ); has to_version => ( # configuration - is => 'ro', - lazy_build => 1, # builder comes from another role... - # which is... probably not how we want it + is => 'ro', + isa => Str, + builder => '_build_to_version', ); sub _build_to_version { $_[0]->schema_version } has once => ( is => 'rw', - isa => 'Bool', - default => undef, + isa => Bool, + default => quote_sub(q{undef}), ); sub next_version_set { @@ -41,11 +44,25 @@ sub next_version_set { return [$self->database_version, $self->to_version]; } +sub previous_version_set { + my $self = shift; + return undef + if $self->once; -__PACKAGE__->meta->make_immutable; + $self->once(!$self->once); + return undef + if $self->database_version eq $self->to_version; + return [$self->database_version, $self->to_version]; +} 1; +# vim: ts=2 sw=2 expandtab + __END__ -vim: ts=2 sw=2 expandtab +=head1 SEE ALSO + +This class is an implementation of +L. Pretty much all the +documentation is there.