X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FHandlesVersionStorage.pm;h=847042a5b07b9cf990548eacf41bb83d9696a2d6;hb=refs%2Fheads%2Fmoo-port;hp=8f535b4772c93bb19629a2f211b2af7dadbf1ef2;hpb=f344dd911ffeda3bc0b3bef6f275d27a2c31e8f9;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm b/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm index 8f535b4..847042a 100644 --- a/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm +++ b/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm @@ -1,13 +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 +