Added dumper method.
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Producer / Dumper.pm
index c0cb96b..b0334f3 100644 (file)
@@ -1,7 +1,7 @@
 package SQL::Translator::Producer::Dumper;
 
 # -------------------------------------------------------------------
-# $Id: Dumper.pm,v 1.1 2004-03-09 19:14:42 kycl4rk Exp $
+# $Id: Dumper.pm,v 1.3 2004-03-11 17:14:31 kycl4rk Exp $
 # -------------------------------------------------------------------
 # Copyright (C) 2002-4 SQLFairy Authors
 #
@@ -30,7 +30,6 @@ SQL::Translator::Producer::Dumper - SQL Dumper producer for SQL::Translator
 
   Options:
 
-    add-truncate    Add "TRUNCATE TABLE" statements for each table
     db_user         Database username
     db_password     Database password
     dsn             DSN for DBI
@@ -62,7 +61,7 @@ use vars qw($VERSION);
 
 use Data::Dumper;
 
-$VERSION = sprintf "%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.3 $ =~ /(\d+)\.(\d+)/;
 
 sub produce {
     my $t              = shift;
@@ -144,7 +143,8 @@ use DBI;
 use Getopt::Long;
 use File::Spec::Functions 'catfile';
 
-my ( $help, $add_truncate, $skip, $skiplike, $no_comments, $mysql_loadfile );
+my ( $help, $add_truncate, $skip, $skiplike, $no_comments, 
+    $takelike, $mysql_loadfile );
 GetOptions(
     'add-truncate'   => \$add_truncate,
     'h|help'         => \$help,
@@ -152,6 +152,7 @@ GetOptions(
     'mysql-loadfile' => \$mysql_loadfile,
     'skip:s'         => \$skip,
     'skiplike:s'     => \$skiplike,
+    'takelike:s'     => \$takelike,
 );
 
 if ( $help ) {
@@ -201,7 +202,12 @@ FOREACH table IN schema.get_tables;
 END 
 -%]
 
-my $db     = DBI->connect('[% dsn %]', '[% db_user %]', '[% db_pass %]');
+my $db     = DBI->connect(
+    '[% dsn %]', 
+    '[% db_user %]', 
+    '[% db_pass %]', 
+    { RaiseError => 1 }
+);
 my %skip   = map { $_, 1 } map { s/^\s+|\s+$//; $_ } split (/,/, $skip);
 my @tables = (
 [%- FOREACH t IN table_defs %]
@@ -221,6 +227,7 @@ for my $table ( @tables ) {
     my $table_name = $table->{'table_name'};
     next if $skip{ $table_name };
     next if $skiplike && $table_name =~ qr/$skiplike/;
+    next if $takelike && $table_name !~ qr/$takelike/;
 
     my ( $out_fh, $outfile );
     if ( $mysql_loadfile ) {