Convert methods to named args and Document args
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / Dad.pm
index 85757a9..92bbb93 100644 (file)
@@ -11,7 +11,6 @@ has schema => (
   isa      => 'DBIx::Class::Schema',
   is       => 'ro',
   required => 1,
-  handles => ['schema_version'],
 );
 
 has backup_directory => (
@@ -25,7 +24,14 @@ has to_version => (
   lazy_build => 1,
 );
 
-sub _build_to_version { $_[0]->schema->schema_version }
+sub _build_to_version { $_[0]->schema_version }
+
+has schema_version => (
+  is         => 'ro',
+  lazy_build => 1,
+);
+
+sub _build_schema_version { $_[0]->schema->schema_version }
 
 method install {
   croak 'Install not possible as versions table already exists in database'
@@ -42,7 +48,9 @@ method install {
 sub upgrade {
   my $self = shift;
   while ( my $version_list = $self->next_version_set ) {
-    my ($ddl, $upgrade_sql) = @{$self->upgrade_single_step($version_list)||[]};
+    my ($ddl, $upgrade_sql) = @{
+               $self->upgrade_single_step({ version_set => $version_list })
+    ||[]};
 
     $self->add_database_version({
       version     => $version_list->[-1],
@@ -55,7 +63,7 @@ sub upgrade {
 sub downgrade {
   my $self = shift;
   while ( my $version_list = $self->previous_version_set ) {
-    $self->downgrade_single_step($version_list);
+    $self->downgrade_single_step({ version_set => $version_list });
 
     # do we just delete a row here?  I think so but not sure
     $self->delete_database_version({ version => $version_list->[-1] });
@@ -79,6 +87,11 @@ __END__
 The L<DBIx::Class::Schema> (B<required>) that is used to talk to the database
 and generate the DDL.
 
+=attr schema_version
+
+The version that the schema is currently at.  Defaults to
+C<< $self->schema->schema_version >>.
+
 =attr backup_directory
 
 The directory where backups are stored