Port to Moo
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / VersionStorage / Standard.pm
CommitLineData
0905dc0e 1package DBIx::Class::DeploymentHandler::VersionStorage::Standard;
a976d6e4 2use Moo;
56203087 3use DBIx::Class::DeploymentHandler::LogImporter ':log';
a976d6e4 4use DBIx::Class::DeploymentHandler::Types 'ResultSet';
9deabd1f 5
6# ABSTRACT: Version storage that does the normal stuff
7
53de57ed 8use DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult;
0905dc0e 9
10has schema => (
0905dc0e 11 is => 'ro',
12 required => 1,
13);
14
15has version_rs => (
a976d6e4 16 isa => ResultSet,
0905dc0e 17 is => 'ro',
53de57ed 18 builder => '_build_version_rs',
0905dc0e 19 handles => [qw( database_version version_storage_is_installed )],
20);
21
22with 'DBIx::Class::DeploymentHandler::HandlesVersionStorage';
23
24sub _build_version_rs {
6bbb6ce7 25 $_[0]->schema->register_class(
26 __VERSION =>
27 'DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult'
28 );
29 $_[0]->schema->resultset('__VERSION')
0905dc0e 30}
31
0df68524 32sub add_database_version {
33 my $version = $_[1]->{version};
f4075791 34 log_debug { "Adding database version $version" };
0df68524 35 $_[0]->version_rs->create($_[1])
36}
0905dc0e 37
f344dd91 38sub delete_database_version {
0df68524 39 my $version = $_[1]->{version};
f4075791 40 log_debug { "Deleting database version $version" };
0df68524 41 $_[0]->version_rs->search({ version => $version})->delete
f344dd91 42}
43
0905dc0e 441;
45
e52174e3 46# vim: ts=2 sw=2 expandtab
47
0905dc0e 48__END__
49
ec167a97 50=head1 SEE ALSO
51
52This class is an implementation of
53L<DBIx::Class::DeploymentHandler::HandlesVersionStorage>. Pretty much all the
54documentation is there.