in the database.
#!/usr/bin/env perl
+
use strict;
use warnings;
use aliased 'DBIx::Class::DeploymentHandler' => 'DH';
+ use Getopt::Long;
use FindBin;
use lib "$FindBin::Bin/../lib";
use MyDatabase::Main;
- my $schema = MyDatabase::Main->connect('dbi:SQLite:mydb');
- my $dh = DH->new({
- schema => $schema,
- script_directory => "$FindBin::Bin/dbicdh",
- databases => 'SQLite',
- sql_translator_args => { add_drop_table => 0 },
- });
+ my $force_overwrite = 0;
+
+ unless ( GetOptions( 'force_overwrite!' => \$force_overwrite ) ) {
+ die "Invalid options";
+ }
+
+ my $schema = MyDatabase::Main->connect('dbi:SQLite:mydb.db');
+
+ my $dh = DH->new(
+ {
+ schema => $schema,
+ script_directory => "$FindBin::Bin/../dbicdh",
+ databases => 'SQLite',
+ sql_translator_args => { add_drop_table => 0 },
+ force_overwrite => $force_overwrite,
+ }
+ );
$dh->prepare_install;
$dh->install;
`-- 1
`-- 001-auto.yml
+You may wish to turn on L<debug logging|DBIx::Class::DeploymentHandler/"LOGGING">
+before running this script by setting the environment variable C<DBICDH_TRACE> to
+C<1>.
+
=head3 001-auto.sql
DBIx::Class::DeploymentHandler automatically generates SQL from our schema
should probably be using it for population. To do that all you need to do
is create a file called C<dbicdh/_common/deploy/1/create_artists.pl>:
- sub {
- my $schema = shift;
- $schema->resultset('User')->populate([
- ['name'],
- ['Marillion'],
- ['The Moutain Goats'],
- ['Ladyhawke'],
- ]);
- };
+ sub {
+ my $schema = shift;
+ $schema->resultset('Artist')->populate([
+ ['artistid', 'name'],
+ [1, 'Marillion'],
+ [2, 'The Moutain Goats'],
+ [3, 'Ladyhawke'],
+ ]);
+ };
=head1 Upgrading