finally put deploy where it actually belongs
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler.pm
index 64202aa..988adc1 100644 (file)
@@ -30,14 +30,14 @@ has schema => (
   handles => [qw( ddl_filename schema_version )],
 );
 
-has upgrade_directory => (
+has upgrade_directory => ( # configuration
   isa      => 'Str',
   is       => 'ro',
   required => 1,
   default  => 'sql',
 );
 
-has backup_directory => (
+has backup_directory => ( # configuration
   isa => 'Str',
   is  => 'ro',
   predicate  => 'has_backup_directory',
@@ -55,13 +55,7 @@ method _build_storage {
   $s
 }
 
-has do_backup => (
-  isa     => 'Bool',
-  is      => 'ro',
-  default => undef,
-);
-
-has do_diff_on_init => (
+has do_backup => ( # configuration
   isa     => 'Bool',
   is      => 'ro',
   default => undef,
@@ -79,49 +73,19 @@ method _build_version_rs {
    $self->schema->resultset('__VERSION')
 }
 
-has databases => (
+has databases => ( # configuration
   coerce  => 1,
   isa     => 'DBIx::Class::DeploymentHandler::Databases',
   is      => 'ro',
   default => sub { [qw( MySQL SQLite PostgreSQL )] },
 );
 
-has sqltargs => (
+has sqltargs => ( # configuration
   isa => 'HashRef',
   is  => 'ro',
   default => sub { {} },
 );
 
-method deploy {
-  my $storage  = $self->storage;
-
-  my $deploy = sub {
-    my $line = shift;
-    return if(!$line || $line =~ /^--|^BEGIN TRANSACTION|^COMMIT|^\s+$/);
-    $storage->_query_start($line);
-    try {
-      # do a dbh_do cycle here, as we need some error checking in
-      # place (even though we will ignore errors)
-      $storage->dbh_do (sub { $_[1]->do($line) });
-    }
-    catch {
-      carp "$_ (running '${line}')"
-    }
-    $storage->_query_end($line);
-  };
-  my @statements = $self->deployment_statements();
-  if (@statements > 1) {
-    foreach my $statement (@statements) {
-      $deploy->( $statement );
-    }
-  }
-  elsif (@statements == 1) {
-    foreach my $line ( split(";\n", $statements[0])) {
-      $deploy->( $line );
-    }
-  }
-}
-
 method install($new_version) {
   carp 'Install not possible as versions table already exists in database'
     if $self->is_installed;
@@ -129,7 +93,7 @@ method install($new_version) {
   $new_version ||= $self->schema_version;
 
   if ($new_version) {
-    $self->deploy();
+    $self->deploy;
 
     $self->version_rs->create({
       version     => $new_version,
@@ -186,4 +150,4 @@ __PACKAGE__->meta->make_immutable;
 
 __END__
 
-vim: ts=2,sw=2,expandtab
+vim: ts=2 sw=2 expandtab