initial cut at install_resultsource (and therefore install_version_storage)
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / WithReasonableDefaults.pm
1 package DBIx::Class::DeploymentHandler::WithReasonableDefaults;
2 use Moose::Role;
3
4 requires qw( prepare_upgrade prepare_downgrade database_version schema_version );
5
6 around prepare_upgrade => sub {
7   my $orig = shift;
8   my $self = shift;
9
10   my $from_version = shift || $self->database_version;
11   my $to_version   = shift || $self->schema_version;
12   my $version_set  = shift || [$from_version, $to_version];
13
14   $self->$orig($from_version, $to_version, $version_set);
15 };
16
17
18 around prepare_downgrade => sub {
19   my $orig = shift;
20   my $self = shift;
21
22   my $from_version = shift || $self->database_version;
23   my $to_version   = shift || $self->schema_version;
24   my $version_set  = shift || [$to_version, $from_version];
25
26   $self->$orig($from_version, $to_version, $version_set);
27 };
28
29 around install_resultsource => sub {
30   my $orig = shift;
31   my $self = shift;
32   my $source = shift;
33   my $version = shift || $self->to_version;
34
35   $self->$orig($source, $version);
36 };
37
38 1;
39
40 __END__
41
42 vim: ts=2 sw=2 expandtab