add some extra doc for non-integer version users
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / Manual / Intro.pod
index d366ea8..1148b53 100644 (file)
@@ -36,7 +36,12 @@ or if you are using a newer Perl you can use the prettier syntax:
 
 By default DBIx::Class::DeploymentHandler only uses integers for versions,
 this makes versioning much simpler for figuring out what version is next
-(or previous.)
+(or previous.) However, if you are using decimal numbers for versioning,
+you will need to create a separate DeploymentHandler class, as per
+L<DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource>, and
+set the VersionHandler class_name from Monotonic to ExplicitVersions or
+DatabaseToSchemaVersions, as these handle version numbers as strings instead
+of integers.
 
 =head1 install.pl
 
@@ -44,20 +49,32 @@ Our first script, C<install.pl> reads our schema file and creates the tables
 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;
@@ -76,6 +93,10 @@ Running C<install.pl> should create the following:
          `-- 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
@@ -136,7 +157,7 @@ So here is our next script, C<upgrade.pl>:
 
  my $dh = DH->new({
     schema              => $schema,
-    script_directory    => "$FindBin::Bin/dbicdh",
+    script_directory    => "$FindBin::Bin/../dbicdh",
     databases           => 'SQLite',
     sql_translator_args => { add_drop_table => 0 },
  });