Remove isa check on schema attributes
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / VersionStorage / Standard.pm
1 package DBIx::Class::DeploymentHandler::VersionStorage::Standard;
2 use Moose;
3 use DBIx::Class::DeploymentHandler::Logger;
4 use Log::Contextual ':log', -package_logger =>
5   DBIx::Class::DeploymentHandler::Logger->new({
6     env_prefix => 'DBICDH'
7   });
8
9 # ABSTRACT: Version storage that does the normal stuff
10
11 use DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult;
12
13 has schema => (
14   is       => 'ro',
15   required => 1,
16 );
17
18 has version_rs => (
19   isa        => 'DBIx::Class::ResultSet',
20   is         => 'ro',
21   builder    => '_build_version_rs',
22   handles    => [qw( database_version version_storage_is_installed )],
23 );
24
25 with 'DBIx::Class::DeploymentHandler::HandlesVersionStorage';
26
27 sub _build_version_rs {
28   $_[0]->schema->register_class(
29     __VERSION =>
30       'DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult'
31   );
32   $_[0]->schema->resultset('__VERSION')
33 }
34
35 sub add_database_version {
36   my $version = $_[1]->{version};
37   log_debug { "Adding database version $version" };
38   $_[0]->version_rs->create($_[1])
39 }
40
41 sub delete_database_version {
42   my $version = $_[1]->{version};
43   log_debug { "Deleting database version $version" };
44   $_[0]->version_rs->search({ version => $version})->delete
45 }
46
47 __PACKAGE__->meta->make_immutable;
48
49 1;
50
51 # vim: ts=2 sw=2 expandtab
52
53 __END__
54
55 =head1 SEE ALSO
56
57 This class is an implementation of
58 L<DBIx::Class::DeploymentHandler::HandlesVersionStorage>.  Pretty much all the
59 documentation is there.