Schemata don't have to use component to use DBICDH
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / VersionStorage / Standard.pm
1 package DBIx::Class::DeploymentHandler::VersionStorage::Standard;
2 use Moose;
3
4 # ABSTRACT: Version storage that does the normal stuff
5
6 use Method::Signatures::Simple;
7 use DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult;
8
9 has schema => (
10   isa      => 'DBIx::Class::Schema',
11   is       => 'ro',
12   required => 1,
13 );
14
15 has version_rs => (
16   isa        => 'DBIx::Class::ResultSet',
17   is         => 'ro',
18   builder    => '_build_version_rs',
19   handles    => [qw( database_version version_storage_is_installed )],
20 );
21
22 with 'DBIx::Class::DeploymentHandler::HandlesVersionStorage';
23
24 sub _build_version_rs {
25   $_[0]->schema->register_class(
26     __VERSION =>
27       'DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult'
28   );
29   $_[0]->schema->resultset('__VERSION')
30 }
31
32 sub add_database_version { $_[0]->version_rs->create($_[1]) }
33
34 sub delete_database_version {
35   $_[0]->version_rs->search({ version => $_[1]->{version}})->delete
36 }
37
38 __PACKAGE__->meta->make_immutable;
39
40 1;
41
42 # vim: ts=2 sw=2 expandtab
43
44 __END__
45