X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=script%2Fdbicdump;h=5c72419808b76b45de3306b1c39eaafc4b298423;hb=dbe5c90463dd1b323513739b1d27607186caddac;hp=895a2023db3fca2b8fd8a6a8988a00085cc273d6;hpb=a0f1a5653a4a8eb043c092962d26b1c6940c5f26;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/script/dbicdump b/script/dbicdump index 895a202..5c72419 100644 --- a/script/dbicdump +++ b/script/dbicdump @@ -8,52 +8,55 @@ dbicdump - Dump a schema using DBIx::Class::Schema::Loader =head1 SYNOPSIS - dbicdump - dbicdump [-I ] [-o = ] \ - + dbicdump + dbicdump [-I ] [-o = ] \ + Examples: - $ dbicdump schema.conf + $ dbicdump schema.conf - $ dbicdump -o dump_directory=./lib \ - -o components='["InflateColumn::DateTime"]' \ - MyApp::Schema dbi:SQLite:./foo.db + $ dbicdump -o dump_directory=./lib \ + -o components='["InflateColumn::DateTime"]' \ + MyApp::Schema dbi:SQLite:./foo.db - $ dbicdump -o dump_directory=./lib \ - -o components='["InflateColumn::DateTime"]' \ - MyApp::Schema dbi:SQLite:./foo.db '{ quote_char => "\"" }' + $ dbicdump -o dump_directory=./lib \ + -o components='["InflateColumn::DateTime"]' \ + MyApp::Schema dbi:SQLite:./foo.db '{ quote_char => "\"" }' - $ dbicdump -Ilib -o dump_directory=./lib \ - -o components='["InflateColumn::DateTime"]' \ - -o preserve_case=1 \ - MyApp::Schema dbi:mysql:database=foo user pass '{ quote_char => "`" }' + $ dbicdump -Ilib -o dump_directory=./lib \ + -o components='["InflateColumn::DateTime"]' \ + -o preserve_case=1 \ + MyApp::Schema dbi:mysql:database=foo user pass \ + '{ quote_char => "`" }' - $ dbicdump -o dump_directory=./lib \ - -o components='["InflateColumn::DateTime"]' \ - MyApp::Schema 'dbi:mysql:database=foo;host=domain.tld;port=3306' user pass + $ dbicdump -o dump_directory=./lib \ + -o components='["InflateColumn::DateTime"]' \ + MyApp::Schema 'dbi:mysql:database=foo;host=domain.tld;port=3306' \ + user pass On Windows that would be: - $ dbicdump -o dump_directory=.\lib ^ - -o components="[q{InflateColumn::DateTime}]" ^ - -o preserve_case=1 ^ - MyApp::Schema dbi:mysql:database=foo user pass "{ quote_char => q{`} }" - + $ dbicdump -o dump_directory=.\lib ^ + -o components="[q{InflateColumn::DateTime}]" ^ + -o preserve_case=1 ^ + MyApp::Schema dbi:mysql:database=foo user pass ^ + "{ quote_char => q{`} }" + Configuration files must have schema_class and connect_info sections, an example of a general config file is as follows: schema_class MyApp::Schema lib /extra/perl/libs - + # connection string dsn dbi:mysql:example user root pass secret - + # dbic loader options dump_directory ./lib @@ -82,15 +85,9 @@ specified. L, L. -=head1 AUTHOR - -Dagfinn Ilmari Mannsåker C<< >> +=head1 AUTHORS -=head1 CONTRIBUTORS - -Caelum: Rafael Kitover - -alnewkirk: Al Newkirk +See L. =head1 LICENSE @@ -104,7 +101,6 @@ use warnings; use Getopt::Long; use Pod::Usage; use DBIx::Class::Schema::Loader 'make_schema_at'; -use namespace::clean; use DBIx::Class::Schema::Loader::Base (); use DBIx::Class::Schema::Loader::Optional::Dependencies (); require lib; @@ -128,14 +124,14 @@ if (@ARGV == 1) { my $configuration_file = shift @ARGV; - my $configurations = - Config::Any->load_files( { - use_ext => 1, - flatten_to_hash => 1, - files => [$configuration_file] } ); - + my $configurations = Config::Any->load_files({ + use_ext => 1, + flatten_to_hash => 1, + files => [$configuration_file] + }); + my $c = (values %$configurations)[0]; - + unless (keys %{$c->{connect_info}} && $c->{schema_class}) { pod2usage(1); } @@ -151,13 +147,13 @@ if (@ARGV == 1) { } lib->import($_) for @libs; - + my ($dsn, $user, $pass, $options) = map { $c->{connect_info}->{$_} } qw/dsn user pass options/; $options ||= {}; $c->{loader_options}->{dump_directory} ||= $loader_options->{dump_directory}; - + make_schema_at( $c->{schema_class}, $c->{loader_options} || {}, @@ -167,14 +163,14 @@ if (@ARGV == 1) { else { my ($schema_class, @loader_connect_info) = @ARGV or pod2usage(1); - + my $dsn = shift @loader_connect_info; - + my ($user, $pass) = $dsn =~ /sqlite/i ? ('', '') : splice @loader_connect_info, 0, 2; - + my @extra_connect_info_opts = map parse_value($_), @loader_connect_info; - + make_schema_at( $schema_class, $loader_options,