X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FHandlesVersionStorage.pm;h=aeba2c34a39a527b635e22e49b6059401636919b;hb=bd8ce46f1010783bbfee92d76bdd5a126d59fc6e;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..aeba2c3 100644 --- a/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm +++ b/lib/DBIx/Class/DeploymentHandler/HandlesVersionStorage.pm @@ -1,12 +1,67 @@ package DBIx::Class::DeploymentHandler::HandlesVersionStorage; + use Moose::Role; -requires 'database_version'; +# ABSTRACT: Interface for version storage methods + 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 +