@@ -1,5 +1,18 @@
Revision history for DBIx-Class-DeploymentHandler
+0.002212 2014-10-11 15:04:22-05:00 America/Chicago
+ - Add some nice documentation on overall structure
+
+0.002211 2014-05-15 20:06:48-05:00 America/Chicago
+ - Fix some missing ABSTRACTs (Fixes GH#22, thanks Gregor Herrmann!)
+
+0.002210 2014-01-31 09:35:27 America/Chicago
+ - Make source order stable to avoid non-changes in git (fixes RT#92580)
+ - Ensure that sqltargs are passed to deploy when ignore_ddl is set
+ (fixes RT#92373)
+ - Correctly strip lines that are all whitespace (fixes RT#92582)
+ - Ditch RT
+
0.002209 2013-12-27 18:08:31 America/Chicago
- stop using Class::MOP::load_class (RT#91003)
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is Copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software, licensed under:
@@ -22,7 +22,7 @@ This is free software, licensed under:
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is Copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software, licensed under:
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
Changes
LICENSE
MANIFEST
@@ -4,7 +4,7 @@
"Arthur Axel \"fREW\" Schmidt <frioux+cpan@gmail.com>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830",
+ "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
"license" : [
"perl_5"
],
@@ -16,7 +16,7 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
@@ -56,6 +56,17 @@
}
},
"release_status" : "stable",
- "version" : "0.002209"
+ "resources" : {
+ "bugtracker" : {
+ "web" : "https://github.com/frioux/DBIx-Class-DeploymentHandler/issues"
+ },
+ "homepage" : "https://github.com/frioux/DBIx-Class-DeploymentHandler",
+ "repository" : {
+ "type" : "git",
+ "url" : "https://github.com/frioux/DBIx-Class-DeploymentHandler.git",
+ "web" : "https://github.com/frioux/DBIx-Class-DeploymentHandler"
+ }
+ },
+ "version" : "0.002212"
}
@@ -1,38 +1,42 @@
---
abstract: 'Extensible DBIx::Class deployment'
author:
- - "Arthur Axel \"fREW\" Schmidt <frioux+cpan@gmail.com>"
+ - 'Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>'
build_requires:
- DBD::SQLite: 1.35
- File::Temp: 0
- Test::Fatal: 0.006
- Test::More: 0.88
- Test::Requires: 0.06
- aliased: 0
+ DBD::SQLite: '1.35'
+ File::Temp: '0'
+ Test::Fatal: '0.006'
+ Test::More: '0.88'
+ Test::Requires: '0.06'
+ aliased: '0'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.132830'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: DBIx-Class-DeploymentHandler
requires:
- Carp: 0
- Carp::Clan: 0
- Context::Preserve: 0.01
- DBIx::Class: 0.08121
- Log::Contextual: 0.005005
- Moo: 1.003
- Moose: 1
- MooseX::Role::Parameterized: 0.18
- Path::Class: 0.26
- SQL::Translator: 0.11005
- Sub::Exporter::Progressive: 0
- Text::Brew: 0.02
- Try::Tiny: 0
- autodie: 0
- namespace::autoclean: 0
- parent: 0.225
-version: 0.002209
+ Carp: '0'
+ Carp::Clan: '0'
+ Context::Preserve: '0.01'
+ DBIx::Class: '0.08121'
+ Log::Contextual: '0.005005'
+ Moo: '1.003'
+ Moose: '1'
+ MooseX::Role::Parameterized: '0.18'
+ Path::Class: '0.26'
+ SQL::Translator: '0.11005'
+ Sub::Exporter::Progressive: '0'
+ Text::Brew: '0.02'
+ Try::Tiny: '0'
+ autodie: '0'
+ namespace::autoclean: '0'
+ parent: '0.225'
+resources:
+ bugtracker: https://github.com/frioux/DBIx-Class-DeploymentHandler/issues
+ homepage: https://github.com/frioux/DBIx-Class-DeploymentHandler
+ repository: https://github.com/frioux/DBIx-Class-DeploymentHandler.git
+version: '0.002212'
@@ -1,19 +1,19 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.020.
use strict;
use warnings;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker ;
my %WriteMakefileArgs = (
"ABSTRACT" => "Extensible DBIx::Class deployment",
"AUTHOR" => "Arthur Axel \"fREW\" Schmidt <frioux+cpan\@gmail.com>",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "DBIx-Class-DeploymentHandler",
"EXE_FILES" => [],
@@ -45,7 +45,7 @@ my %WriteMakefileArgs = (
"Test::Requires" => "0.06",
"aliased" => 0
},
- "VERSION" => "0.002209",
+ "VERSION" => "0.002212",
"test" => {
"TESTS" => "t/*.t t/bugs/*.t t/deploy_methods/*.t t/version_handlers/*.t t/version_storages/*.t"
}
@@ -74,6 +74,47 @@ WHERE IS ALL THE DOC?!
DBIx::Class::DeploymentHandler::VersionStorage::Standard, and
DBIx::Class::DeploymentHandler::WithReasonableDefaults.
+WHY IS THIS SO WEIRD
+ "DBIx::Class::DeploymentHandler" has a strange structure. The gist is
+ that it delegates to three small objects that are proxied to via
+ interface roles that then create the illusion of one large, monolithic
+ object. Here is a diagram that might help:
+
+ +------------+
+ | |
+ +------------+ Deployment +-----------+
+ | | Handler | |
+ | | | |
+ | +-----+------+ |
+ | | |
+ | | |
+ : : :
+ v v v
+ /-=-------\ /-=-------\ /-=----------\
+ | | | | | | (interface roles)
+ | Handles | | Handles | | Handles |
+ | Version | | Deploy | | Versioning |
+ | Storage | | | | |
+ | | \-+--+--+-/ \-+---+---+--/
+ \-+--+--+-/ | | | | | |
+ | | | | | | | | |
+ | | | | | | | | |
+ v v v v v v v v v
+ +----------+ +--------+ +-----------+
+ | | | | | | (implementations)
+ | Version | | Deploy | | Version |
+ | Storage | | Method | | Handler |
+ | Standard | | SQLT | | Monotonic |
+ | | | | | |
+ +----------+ +--------+ +-----------+
+
+ The nice thing about this is that we have well defined interfaces for
+ the objects that comprise the "DeploymentHandler", the smaller objects
+ can be tested in isolation, and the smaller objects can even be swapped
+ in easily. But the real win is that you can subclass the
+ "DeploymentHandler" without knowing about the underlying delegation; you
+ just treat it like normal Perl and write methods that do what you want.
+
THIS SUCKS
You started your project and weren't using
"DBIx::Class::DeploymentHandler"? Lucky for you I had you in mind when I
@@ -149,7 +190,7 @@ AUTHOR
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
COPYRIGHT AND LICENSE
- This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+ This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -2,16 +2,17 @@ name = DBIx-Class-DeploymentHandler
author = Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
license = Perl_5
copyright_holder = Arthur Axel "fREW" Schmidt
-version = 0.002209
+version = 0.002212
[NextRelease]
[@Git]
[@Basic]
[GithubMeta]
+issues = 1
+
[MetaJSON]
-[PodWeaver]
+[PickyPodWeaver]
[PkgVersion]
[ReadmeFromPod]
[PodSyntaxTests]
-
[Prereqs::FromCPANfile]
@@ -1,4 +1,6 @@
package DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource;
+$DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource::VERSION = '0.002212';
+# ABSTRACT: Customize how your DBICDH versions are stored
__END__
@@ -6,7 +8,7 @@ __END__
=head1 NAME
-DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource
+DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource - Customize how your DBICDH versions are stored
=head1 DESCRIPTION
@@ -114,18 +116,13 @@ Monotonic ( which handles integer only version numbers ) to ExplicitVersions
or DatabaseToSchemaVersions, as these handle version numbers as strings
instead of integers.
-=head1 NAME
-
-DBIx::Class::DeploymentHandler::Cookbook::CustomResultSource - Customize how
-your DBICDH versions are stored
-
=head1 AUTHOR
Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::Dad;
-{
- $DBIx::Class::DeploymentHandler::Dad::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::Dad::VERSION = '0.002212';
# ABSTRACT: Parent class for DeploymentHandlers
use Moose;
@@ -266,7 +263,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated;
-{
- $DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated::VERSION = '0.002212';
use Moose;
# ABSTRACT: (DEPRECATED) Use this if you are stuck in the past
@@ -127,7 +125,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,6 @@
package DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers;
-{
- $DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers::VERSION = '0.002212';
+# ABSTRACT: CodeRef Transforms for common use-cases in DBICDH Migrations
use strict;
use warnings;
@@ -102,7 +101,7 @@ __END__
=head1 NAME
-DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers
+DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::ScriptHelpers - CodeRef Transforms for common use-cases in DBICDH Migrations
=head1 SYNOPSIS
@@ -158,7 +157,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator;
-{
- $DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::VERSION = '0.002212';
use Moose;
# ABSTRACT: Manage your SQL and Perl migrations in nicely laid out directories
@@ -267,19 +265,20 @@ sub _split_sql_chunk {
s/^(?:BEGIN|BEGIN TRANSACTION|COMMIT).*//mgi;
# trim whitespaces
- s/^\s+|\s+$//mg;
+ s/^\s+//gm;
+ s/\s+$//gm;
# remove comments
s/^--.*//gm;
# remove blank lines
- s/^\n//mg;
+ s/^\n//gm;
# put on single line
s/\n/ /g;
}
- return @sql;
+ return grep $_, @sql;
}
sub _run_sql {
@@ -290,6 +289,7 @@ sub _run_sql {
sub _load_sandbox {
my $_file = shift;
+ $_file = "$_file";
my $_package = $_file;
$_package =~ s/([^A-Za-z0-9_])/sprintf("_%2x", ord($1))/eg;
@@ -362,8 +362,9 @@ sub deploy {
log_info { "deploying version $version" };
my $sqlt_type = $self->storage->sqlt_type;
my $sql;
+ my $sqltargs = $self->sql_translator_args;
if ($self->ignore_ddl) {
- $sql = $self->_sql_from_yaml({},
+ $sql = $self->_sql_from_yaml($sqltargs,
'_ddl_protoschema_deploy_consume_filenames', $sqlt_type
);
}
@@ -592,7 +593,13 @@ sub prepare_deploy {
my $self = shift;
$self->prepare_protoschema({
# Exclude __VERSION so that it gets installed separately
- parser_args => { sources => [grep { $_ ne '__VERSION' } $self->schema->sources], }
+ parser_args => {
+ sources => [
+ sort { $a cmp $b }
+ grep { $_ ne '__VERSION' }
+ $self->schema->sources
+ ],
+ }
}, '_ddl_protoschema_produce_filename');
$self->_prepare_install({}, '_ddl_protoschema_produce_filename', '_ddl_schema_produce_filename');
}
@@ -1003,7 +1010,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::Deprecated;
-{
- $DBIx::Class::DeploymentHandler::Deprecated::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::Deprecated::VERSION = '0.002212';
# ABSTRACT: (DEPRECATED) Use this if you are stuck in the past
use Moose;
@@ -134,7 +131,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::HandlesDeploy;
-{
- $DBIx::Class::DeploymentHandler::HandlesDeploy::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::HandlesDeploy::VERSION = '0.002212';
use Moose::Role;
# ABSTRACT: Interface for deploy methods
@@ -147,7 +145,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::HandlesVersionStorage;
-{
- $DBIx::Class::DeploymentHandler::HandlesVersionStorage::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::HandlesVersionStorage::VERSION = '0.002212';
use Moose::Role;
# ABSTRACT: Interface for version storage methods
@@ -73,7 +71,7 @@ Deletes given database version from the version storage
warn q(I can't version this database!)
unless $dh->version_storage_is_installed
-return true iff the version storage is installed.
+return true if the version storage is installed.
=head1 AUTHOR
@@ -81,7 +79,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::HandlesVersioning;
-{
- $DBIx::Class::DeploymentHandler::HandlesVersioning::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::HandlesVersioning::VERSION = '0.002212';
use Moose::Role;
# ABSTRACT: Interface for version methods
@@ -147,7 +145,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::LogImporter;
-{
- $DBIx::Class::DeploymentHandler::LogImporter::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::LogImporter::VERSION = '0.002212';
use warnings;
use strict;
@@ -16,24 +13,3 @@ use DBIx::Class::DeploymentHandler::LogRouter;
}
1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-DBIx::Class::DeploymentHandler::LogImporter
-
-=head1 AUTHOR
-
-Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-=cut
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::LogRouter;
-{
- $DBIx::Class::DeploymentHandler::LogRouter::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::LogRouter::VERSION = '0.002212';
use Moo;
use DBIx::Class::DeploymentHandler::Logger;
@@ -32,24 +30,3 @@ sub before_import {}
sub after_import {}
1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-DBIx::Class::DeploymentHandler::LogRouter
-
-=head1 AUTHOR
-
-Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-=cut
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::Logger;
-{
- $DBIx::Class::DeploymentHandler::Logger::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::Logger::VERSION = '0.002212';
use warnings;
use strict;
@@ -50,24 +47,3 @@ sub new {
}
1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-DBIx::Class::DeploymentHandler::Logger
-
-=head1 AUTHOR
-
-Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-=cut
@@ -1,5 +1,5 @@
package DBIx::Class::DeploymentHandler::Manual::CatalystIntro
-
+$DBIx::Class::DeploymentHandler::Manual::CatalystIntro::VERSION = '0.002212';
# ABSTRACT: Introduction to using DBIx::Class::DeploymentHandler with a new Catalyst Project
__END__
@@ -249,7 +249,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,5 +1,5 @@
package DBIx::Class::DeploymentHandler::Manual::Intro
-
+$DBIx::Class::DeploymentHandler::Manual::Intro::VERSION = '0.002212';
# ABSTRACT: Introduction to DBIx::Class::DeploymentHandler
__END__
@@ -204,7 +204,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::Types;
-{
- $DBIx::Class::DeploymentHandler::Types::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::Types::VERSION = '0.002212';
use strict;
use warnings;
@@ -42,7 +40,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions;
-{
- $DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions::VERSION = '0.002212';
use Moose;
# ABSTRACT: Go straight from Database to Schema version
@@ -83,7 +81,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions;
-{
- $DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions::VERSION = '0.002212';
use Moose;
# ABSTRACT: Define your own list of versions to use for migrations
@@ -129,7 +127,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionHandler::Monotonic;
-{
- $DBIx::Class::DeploymentHandler::VersionHandler::Monotonic::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::VersionHandler::Monotonic::VERSION = '0.002212';
use Moose;
# ABSTRACT: Obvious version progressions
@@ -95,7 +93,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::Component;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::Component::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::Component::VERSION = '0.002212';
# ABSTRACT: (DEPRECATED) Attach this component to your schema to ensure you stay up to date
use strict;
@@ -64,7 +61,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult::VERSION = '0.002212';
# ABSTRACT: (DEPRECATED) The old way to store versions in the database
use strict;
@@ -54,7 +51,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResultSet;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResultSet::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResultSet::VERSION = '0.002212';
# ABSTRACT: (DEPRECATED) Predefined searches to find what you want from the version storage
use strict;
@@ -87,7 +84,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Deprecated;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VERSION = '0.002212';
use Moose;
use DBIx::Class::DeploymentHandler::LogImporter ':log';
@@ -100,7 +98,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Standard::Component;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Standard::Component::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VersionStorage::Standard::Component::VERSION = '0.002212';
# ABSTRACT: Attach this component to your schema to ensure you stay up to date
use strict;
@@ -57,7 +54,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult::VERSION = '0.002212';
# ABSTRACT: The typical way to store versions in the database
use strict;
@@ -55,7 +52,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResultSet;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResultSet::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResultSet::VERSION = '0.002212';
# ABSTRACT: Predefined searches to find what you want from the version storage
use strict;
@@ -53,7 +50,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::VersionStorage::Standard;
-{
- $DBIx::Class::DeploymentHandler::VersionStorage::Standard::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::VersionStorage::Standard::VERSION = '0.002212';
use Moose;
use DBIx::Class::DeploymentHandler::LogImporter ':log';
@@ -69,7 +67,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::WithApplicatorDumple;
-{
- $DBIx::Class::DeploymentHandler::WithApplicatorDumple::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::WithApplicatorDumple::VERSION = '0.002212';
use MooseX::Role::Parameterized;
use Module::Runtime 'use_module';
use namespace::autoclean;
@@ -73,22 +71,3 @@ role {
# vim: ts=2 sw=2 expandtab
__END__
-
-=pod
-
-=head1 NAME
-
-DBIx::Class::DeploymentHandler::WithApplicatorDumple
-
-=head1 AUTHOR
-
-Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-=cut
@@ -1,7 +1,5 @@
package DBIx::Class::DeploymentHandler::WithReasonableDefaults;
-{
- $DBIx::Class::DeploymentHandler::WithReasonableDefaults::VERSION = '0.002209';
-}
+$DBIx::Class::DeploymentHandler::WithReasonableDefaults::VERSION = '0.002212';
use Moose::Role;
# ABSTRACT: Make default arguments to a few methods sensible
@@ -86,7 +84,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,8 +1,5 @@
package DBIx::Class::DeploymentHandler;
-{
- $DBIx::Class::DeploymentHandler::VERSION = '0.002209';
-}
-
+$DBIx::Class::DeploymentHandler::VERSION = '0.002212';
# ABSTRACT: Extensible DBIx::Class deployment
use Moose;
@@ -163,6 +160,48 @@ L<DBIx::Class::DeploymentHandler::VersionHandler::Monotonic>,
L<DBIx::Class::DeploymentHandler::VersionStorage::Standard>, and
L<DBIx::Class::DeploymentHandler::WithReasonableDefaults>.
+=head1 WHY IS THIS SO WEIRD
+
+C<DBIx::Class::DeploymentHandler> has a strange structure. The gist is that it
+delegates to three small objects that are proxied to via interface roles that
+then create the illusion of one large, monolithic object. Here is a diagram
+that might help:
+
+ +------------+
+ | |
+ +------------+ Deployment +-----------+
+ | | Handler | |
+ | | | |
+ | +-----+------+ |
+ | | |
+ | | |
+ : : :
+ v v v
+ /-=-------\ /-=-------\ /-=----------\
+ | | | | | | (interface roles)
+ | Handles | | Handles | | Handles |
+ | Version | | Deploy | | Versioning |
+ | Storage | | | | |
+ | | \-+--+--+-/ \-+---+---+--/
+ \-+--+--+-/ | | | | | |
+ | | | | | | | | |
+ | | | | | | | | |
+ v v v v v v v v v
+ +----------+ +--------+ +-----------+
+ | | | | | | (implementations)
+ | Version | | Deploy | | Version |
+ | Storage | | Method | | Handler |
+ | Standard | | SQLT | | Monotonic |
+ | | | | | |
+ +----------+ +--------+ +-----------+
+
+The nice thing about this is that we have well defined interfaces for the
+objects that comprise the C<DeploymentHandler>, the smaller objects can be
+tested in isolation, and the smaller objects can even be swapped in easily. But
+the real win is that you can subclass the C<DeploymentHandler> without knowing
+about the underlying delegation; you just treat it like normal Perl and write
+methods that do what you want.
+
=head1 THIS SUCKS
You started your project and weren't using C<DBIx::Class::DeploymentHandler>?
@@ -243,7 +282,7 @@ Arthur Axel "fREW" Schmidt <frioux+cpan@gmail.com>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Arthur Axel "fREW" Schmidt.
+This software is copyright (c) 2014 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,7 +1,7 @@
use strict;
use warnings;
-use Test::More tests => 1;
+use Test::More;
use DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator;
@@ -15,3 +15,6 @@ BEGIN
END;
END
+is_deeply [ split_sql_chunk( 'foo', ' ', 'bar' ) ], [qw( foo bar)];
+
+done_testing;
@@ -7,9 +7,8 @@ BEGIN {
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();