X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-DeploymentHandler.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FVersionStorage%2FStandard.pm;h=2e699ba9ff0300160e8ea40b9ae4e4c470913405;hp=0d9cd887696279c621107fe0c44733f309285e39;hb=97aa9a748e07c9e5875d56bd7d6554e481911c5d;hpb=0905dc0e9b45f555ae9217e163132cc49a5eaf23 diff --git a/lib/DBIx/Class/DeploymentHandler/VersionStorage/Standard.pm b/lib/DBIx/Class/DeploymentHandler/VersionStorage/Standard.pm index 0d9cd88..2e699ba 100644 --- a/lib/DBIx/Class/DeploymentHandler/VersionStorage/Standard.pm +++ b/lib/DBIx/Class/DeploymentHandler/VersionStorage/Standard.pm @@ -1,9 +1,13 @@ package DBIx::Class::DeploymentHandler::VersionStorage::Standard; + use Moose; -use Method::Signatures::Simple; +use DBIx::Class::DeploymentHandler::LogImporter ':log'; + +# ABSTRACT: Version storage that does the normal stuff + +use DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult; has schema => ( - isa => 'DBIx::Class::Schema', is => 'ro', required => 1, ); @@ -11,24 +15,42 @@ has schema => ( has version_rs => ( isa => 'DBIx::Class::ResultSet', is => 'ro', - lazy_build => 1, # builder comes from another role... - # which is... probably not how we want it + builder => '_build_version_rs', handles => [qw( database_version version_storage_is_installed )], ); with 'DBIx::Class::DeploymentHandler::HandlesVersionStorage'; sub _build_version_rs { - $_[0]->schema->set_us_up_the_bomb; - $_[0]->schema->resultset('__VERSION') + $_[0]->schema->register_class( + __VERSION => + 'DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult' + ); + $_[0]->schema->resultset('__VERSION') +} + +sub add_database_version { + my $version = $_[1]->{version}; + log_debug { "Adding database version $version" }; + $_[0]->version_rs->create($_[1]) } -sub add_database_version { $_[0]->version_rs->create($_[1]) } +sub delete_database_version { + my $version = $_[1]->{version}; + log_debug { "Deleting database version $version" }; + $_[0]->version_rs->search({ version => $version})->delete +} -sub install_version_storage { die } +__PACKAGE__->meta->make_immutable; 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.