faster travis builds
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / Cookbook / CustomResultSource.pod
index fed4a9f..e9e694c 100644 (file)
@@ -1,5 +1,11 @@
+package DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource;
+
+# ABSTRACT: Customize how your DBICDH versions are stored
+
 =pod
 
+=head1 DESCRIPTION
+
 One of the reasons for the absurd level of flexibility that
 L<DBIx::Class::DeploymentHandler> is so that you can do things that we did not
 originally anticipate.  Surprisingly, I never added a method to change the
@@ -9,6 +15,10 @@ shows how one can do it in style:
 =head2 Version Storage
 
  package MyApp::Schema::DBICDHStorage;
+ # the following is necessary for some setups
+ use MyApp::Schema::DBICDHStorageResult;
  use Moose;
  extends 'DBIx::Class::DeploymentHandler::VersionStorage::Standard';
 
@@ -51,7 +61,7 @@ table being set on the original result.
      class_name           => 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator',
      delegate_name        => 'deploy_method',
      attributes_to_assume => ['schema'],
-     attributes_to_copy   => [qw( databases upgrade_directory sql_translator_args )],
+     attributes_to_copy   => [qw( databases script_directory sql_translator_args )],
    },
    'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => {
      interface_role       => 'DBIx::Class::DeploymentHandler::HandlesVersioning',
@@ -70,17 +80,19 @@ table being set on the original result.
  sub prepare_version_storage_install {
    my $self = shift;
 
-   $self->prepare_resultsource_install(
-     $self->version_storage->version_rs->result_source
-   );
+   $self->prepare_resultsource_install({
+       result_source => $self->version_storage->version_rs->result_source
+   });
  }
 
  sub install_version_storage {
    my $self = shift;
 
-   $self->install_resultsource(
-     $self->version_storage->version_rs->result_source
-   );
+   my $version = (shift || {})->{version} || $self->schema_version;
+   $self->install_resultsource({
+       result_source => $self->version_storage->version_rs->result_source,
+       version       => $version,
+   });
  }
 
  sub prepare_install {
@@ -92,3 +104,9 @@ table being set on the original result.
  __PACKAGE__->meta->make_immutable;
  1;
 
+Note: if you are using decimal numbers for versioning, you should ammend
+this DeploymentHandler package, setting it's VersionHandler class_name from
+Monotonic ( which handles integer only version numbers ) to ExplicitVersions
+or DatabaseToSchemaVersions, as these handle version numbers as strings
+instead of integers.
+