X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FProducer%2FDumper.pm;h=12ebdc66ef721f2b1ed9623e22f96fa7762804cc;hb=282bf498899061be19ec7fd7ce16bf25a562fdcf;hp=f4b2fbf56b01cdf505a391582b0e384623232860;hpb=b03926cdac036bdbcf69e478ca29e1121c814646;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Producer/Dumper.pm b/lib/SQL/Translator/Producer/Dumper.pm index f4b2fbf..12ebdc6 100644 --- a/lib/SQL/Translator/Producer/Dumper.pm +++ b/lib/SQL/Translator/Producer/Dumper.pm @@ -59,24 +59,24 @@ use vars qw($VERSION); use Data::Dumper; -$VERSION = '1.99'; +$VERSION = '1.59'; sub produce { my $t = shift; my $args = $t->producer_args; my $schema = $t->schema; - my $add_truncate = $args->{'add_truncate'} || 0; + my $add_truncate = $args->{'add_truncate'} || 0; my $skip = $args->{'skip'} || ''; my $skiplike = $args->{'skiplike'} || ''; my $db_user = $args->{'db_user'} || 'db_user'; my $db_pass = $args->{'db_password'} || 'db_pass'; my $parser_name = $t->parser_type; - my %skip = map { $_, 1 } map { s/^\s+|\s+$//; $_ } + my %skip = map { $_, 1 } map { s/^\s+|\s+$//; $_ } split (/,/, $skip); my $sqlt_version = $t->version; - if ( $parser_name =~ /Parser::(\w+)$/ ) { - $parser_name = $1 + if ( $parser_name =~ /Parser::(\w+)$/ ) { + $parser_name = $1 } my %type_to_dbd = ( @@ -103,9 +103,9 @@ sub produce { my $template = Template->new; my $template_text = template(); my $out; - $template->process( - \$template_text, - { + $template->process( + \$template_text, + { translator => $t, schema => $schema, db_user => $db_user, @@ -114,14 +114,13 @@ sub produce { perl => $Config{'startperl'}, skip => \%skip, skiplike => $skiplike, - }, - \$out + }, + \$out ) or die $template->error; return $out; } -# ------------------------------------------------------------------- sub template { # # Returns the template to be processed by Template Toolkit @@ -141,7 +140,7 @@ use DBI; use Getopt::Long; use File::Spec::Functions 'catfile'; -my ( $help, $add_truncate, $skip, $skiplike, $no_comments, +my ( $help, $add_truncate, $skip, $skiplike, $no_comments, $takelike, $mysql_loadfile ); GetOptions( 'add-truncate' => \$add_truncate, @@ -198,13 +197,13 @@ FOREACH table IN schema.get_tables; types => types, fields => field_names, }); -END +END -%] my $db = DBI->connect( - '[% dsn %]', - '[% db_user %]', - '[% db_pass %]', + '[% dsn %]', + '[% db_user %]', + '[% db_pass %]', { RaiseError => 1 } ); my %skip = map { $_, 1 } map { s/^\s+|\s+$//; $_ } split (/,/, $skip); @@ -231,7 +230,7 @@ for my $table ( @tables ) { my ( $out_fh, $outfile ); if ( $mysql_loadfile ) { $outfile = catfile( cwd(), "$table_name.txt" ); - open $out_fh, ">$outfile" or + open $out_fh, ">$outfile" or die "Can't write LOAD FILE to '$table_name': $!\n"; } @@ -264,14 +263,14 @@ for my $table ( @tables ) { $val = defined $val ? $val : $mysql_loadfile ? '\N' : 'NULL'; } push @vals, $val; - } + } if ( $mysql_loadfile ) { print $out_fh join("\t", @vals), "\n"; } else { print "INSERT INTO $table_name (". - join(', ', @{ $table->{'fields'} }) . + join(', ', @{ $table->{'fields'} }) . ') VALUES (', join(', ', @vals), ");\n"; } }