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
=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';
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 {
__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.
+