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=3735866adfdfe8ce41c2fb5eba626df3fb833b06;hpb=0905dc0e9b45f555ae9217e163132cc49a5eaf23;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm b/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm index 3735866..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 'install_version_storage'; +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 +