X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FHandlesVersionStorage.pm;h=847042a5b07b9cf990548eacf41bb83d9696a2d6;hb=a976d6e46695d7015239ee4c30cb3708f4ce7942;hp=87d1134e7f62db2c2d9f552453c48912800e11bd;hpb=ee82cb0e76144914d520f60f7369448c188e2fe1;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm b/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm index 87d1134..847042a 100644 --- a/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm +++ b/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm @@ -1,12 +1,66 @@ package DBIx::Class::DeploymentHandler::HandlesVersionStorage; -use Moose::Role; +use Moo::Role; + +# ABSTRACT: Interface for version storage methods -requires 'database_version'; requires 'add_database_version'; +requires 'database_version'; +requires 'delete_database_version'; requires 'version_storage_is_installed'; 1; +# vim: ts=2 sw=2 expandtab + __END__ -vim: ts=2 sw=2 expandtab +=head1 DESCRIPTION + +Typically VersionStorages will be implemented with a simple +DBIx::Class::Result. Take a look at the +L for examples of what you +might want to do in your own storage. + +=method add_database_version + + $dh->add_database_version({ + version => '1.02', + ddl => $ddl, # can be undef + upgrade_sql => $sql, # can be undef + }); + +Store a new version into the version storage + +=method database_version + + my $db_version = $version_storage->database_version + +Returns the most recently installed version in the database. + +=method delete_database_version + + $dh->delete_database_version({ version => '1.02' }) + +Deletes given database version from the version storage + +=method version_storage_is_installed + + warn q(I can't version this database!) + unless $dh->version_storage_is_installed + +return true iff the version storage is installed. + +=head1 KNOWN IMPLEMENTATIONS + +=over + +=item * + +L + +=item * + +L + +=back +