lots more doc
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / HandlesVersionStorage.pm
CommitLineData
0905dc0e 1package DBIx::Class::DeploymentHandler::HandlesVersionStorage;
2use Moose::Role;
3
0905dc0e 4requires 'add_database_version';
ed1721b9 5requires 'database_version';
f344dd91 6requires 'delete_database_version';
0905dc0e 7requires 'version_storage_is_installed';
8
91;
10
0905dc0e 11
ed1721b9 12=head1 DESCRIPTION
96ef97e5 13
ed1721b9 14Typically VersionStorages will be implemented with a simple
15DBIx::Class::Result. Take a look at the
16L<two existing implementations|/KNOWN IMPLEMENTATIONS> for examples of what you
17might want to do in your own storage.
96ef97e5 18
19=method add_database_version
20
5228a963 21 $dh->add_database_version({
22 version => '1.02',
23 ddl => $ddl # can be undef,
24 upgrade_sql => $sql # can be undef,
25 });
26
27Store a new version into the version storage
96ef97e5 28
ed1721b9 29=method database_version
30
31 my $db_version = $version_storage->database_version;
32
96ef97e5 33=method delete_database_version
34
5228a963 35 $dh->delete_database_version({ version => '1.02' })
36
37simply deletes given database version from the version storage
96ef97e5 38
39=method version_storage_is_installed
40
5228a963 41 warn q(I can't version this database!)
42 unless $dh->version_storage_is_installed
43
44return true iff the version storage is installed.
45
ed1721b9 46=head1 KNOWN IMPLEMENTATIONS
47
48=over
49
50=item *
51
52L<DBIx::Class::DeploymentHandler::VersionStorage::Standard>
53
54=item *
55
56L<DBIx::Class::DeploymentHandler::VersionStorage::Deprecated>
57
58=back
59
60__END__
96ef97e5 61
0905dc0e 62vim: ts=2 sw=2 expandtab