2b33d6acc6b2404b244b767d3188f0ac71858358
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / WithDatabaseToSchemaVersions.pm
1 package DBIx::Class::DeploymentHandler::WithDatabaseToSchemaVersions;
2 use Moose::Role;
3
4 # ABSTRACT: Delegate/Role for DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions
5
6 use DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions;
7
8 use Carp 'carp';
9
10 has version_handler => (
11   is         => 'ro',
12   lazy_build => 1,
13   does       => 'DBIx::Class::DeploymentHandler::HandlesVersioning',
14   handles    => 'DBIx::Class::DeploymentHandler::HandlesVersioning',
15 );
16
17 sub _build_version_handler {
18   my $self = shift;
19
20   my $args = {
21     database_version => $self->database_version,
22     schema_version   => $self->schema_version,
23   };
24
25   $args->{to_version} = $self->to_version if $self->has_to_version;
26   DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions->new($args);
27 }
28
29 1;
30
31 # vim: ts=2 sw=2 expandtab
32
33 __END__
34
35 =head1 DELEGATION ROLE
36
37 This role is entirely for making delegation look like a role.  The actual
38 docs for the methods and attributes are at
39 L<DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions>