3 # -------------------------------------------------------------------
4 # Copyright (C) 2002-2009 SQLFairy Authors
6 # This program is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU General Public License as
8 # published by the Free Software Foundation; version 2.
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 # -------------------------------------------------------------------
24 sqlt-dumper - create a dumper script from a schema
28 sqlt-dumper -d Oracle [options] schema.sql > dumper.pl
30 ./dumper.pl > data.sql
34 -h|--help Show help and exit
35 --skip=t1[,t2] Skip tables in comma-separated list
36 --skiplike=regex Skip tables matching the regular expression
37 -u|--user Database username
38 -p|--password Database password
43 This script uses SQL::Translator to parse the SQL schema and create a
44 Perl script that can connect to the database and dump the data as
45 INSERT statements (a la mysqldump) or MySQL's LOAD FILE syntax. You may
46 specify tables to "skip" (also using a "skiplike" regular expression)
47 and the generated dumper script will not have those tables. However,
48 these will also be options in the generated dumper, so you can wait to
49 specify these options when you dump your database. The database
50 username, password, and DSN can be hardcoded into the generated
51 script, or part of the DSN can be intuited from the "database"
56 # -------------------------------------------------------------------
63 use File::Basename qw(basename);
68 my ( $help, $db, $skip, $skiplike, $db_user, $db_pass, $dsn );
71 'd|f|from|db=s' => \$db,
73 'skiplike:s' => \$skiplike,
74 'u|user:s' => \$db_user,
75 'p|password:s' => \$db_pass,
79 pod2usage(0) if $help;
80 pod2usage( 'No database driver specified' ) unless $db;
81 $db_user ||= 'username';
82 $db_pass ||= 'password';
85 my $file = shift @ARGV or pod2usage( -msg => 'No input file' );
86 my $t = SQL::Translator->new(
91 skiplike => $skiplike,
93 db_password => $db_pass,
98 print $t->translate( $file );
102 # -------------------------------------------------------------------
108 Ken Youens-Clark E<lt>kclark@cpan.orgE<gt>.
112 perl, SQL::Translator, SQL::Translator::Producer::Dumper.