X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-DeploymentHandler.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FDeployMethod%2FSQL%2FTranslator.pm;h=0b00dba58fd645455430d204ef0428c5105bbdcf;hp=9f9b9714c0c89446595288d32b46084e994df61d;hb=b6bd39e5d75c994c09f3d0ae0661c572e1c71f05;hpb=870526b16b12b766329625d6316d6270ad7fa329 diff --git a/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator.pm b/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator.pm index 9f9b971..0b00dba 100644 --- a/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator.pm +++ b/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator.pm @@ -264,19 +264,20 @@ sub _split_sql_chunk { s/^(?:BEGIN|BEGIN TRANSACTION|COMMIT).*//mgi; # trim whitespaces - s/^\s+|\s+$//mg; + s/^\s+//gm; + s/\s+$//gm; # remove comments s/^--.*//gm; # remove blank lines - s/^\n//mg; + s/^\n//gm; # put on single line s/\n/ /g; } - return @sql; + return grep $_, @sql; } sub _run_sql { @@ -359,8 +360,9 @@ sub deploy { log_info { "deploying version $version" }; my $sqlt_type = $self->storage->sqlt_type; my $sql; + my $sqltargs = $self->sql_translator_args; if ($self->ignore_ddl) { - $sql = $self->_sql_from_yaml({}, + $sql = $self->_sql_from_yaml($sqltargs, '_ddl_protoschema_deploy_consume_filenames', $sqlt_type ); } @@ -483,10 +485,10 @@ sub _sql_from_yaml { my @sql; my $actual_file = $self->$from_file($version); - for my $yaml_filename (@{ + for my $yaml_filename (@{( DlogS_trace { "generating SQL from Serialized SQL Files: $_" } (ref $actual_file?$actual_file:[$actual_file]) - }) { + )}) { my $sqlt = SQL::Translator->new({ add_drop_table => 0, parser => 'SQL::Translator::Parser::YAML', @@ -703,14 +705,13 @@ sub prepare_protoschema { # we do this because the code that uses this sets parser args, # so we just need to merge in the package - $sqltargs->{parser_args}{package} = $self->schema; my $sqlt = SQL::Translator->new({ parser => 'SQL::Translator::Parser::DBIx::Class', producer => 'SQL::Translator::Producer::YAML', %{ $sqltargs }, }); - my $yml = $sqlt->translate; + my $yml = $sqlt->translate(data => $self->schema); croak("Failed to translate to YAML: " . $sqlt->error) unless $yml;