X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FDeprecated.pm;h=d460fb4f5c984bb3b8d4275a90cc417e1d7b765a;hb=f9c6ab503d63cc70fa884cadb7ed5f105f1a7bc8;hp=3697761b93786bc5f2dbf35c2910dc0cd6122509;hpb=9deabd1fcf64a04422d1903f8656ac445e73336a;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/Deprecated.pm b/lib/DBIx/Class/DeploymentHandler/Deprecated.pm index 3697761..d460fb4 100644 --- a/lib/DBIx/Class/DeploymentHandler/Deprecated.pm +++ b/lib/DBIx/Class/DeploymentHandler/Deprecated.pm @@ -8,8 +8,19 @@ use Moose::Util 'apply_all_roles'; extends 'DBIx::Class::DeploymentHandler::Dad'; # a single with would be better, but we can't do that # see: http://rt.cpan.org/Public/Bug/Display.html?id=46347 -with 'DBIx::Class::DeploymentHandler::Deprecated::WithDeprecatedSqltDeployMethod', - 'DBIx::Class::DeploymentHandler::Deprecated::WithDeprecatedVersionStorage'; +with 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { + interface_role => 'DBIx::Class::DeploymentHandler::HandlesDeploy', + class_name => 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated', + delegate_name => 'deploy_method', + attributes_to_assume => ['schema'], + attributes_to_copy => [qw( script_directory databases sql_translator_args )], + }, + 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { + interface_role => 'DBIx::Class::DeploymentHandler::HandlesVersionStorage', + class_name => 'DBIx::Class::DeploymentHandler::VersionStorage::Deprecated', + delegate_name => 'version_storage', + attributes_to_assume => ['schema'], + }; with 'DBIx::Class::DeploymentHandler::WithReasonableDefaults'; sub BUILD { @@ -18,14 +29,27 @@ sub BUILD { if ($self->schema->can('ordered_versions') && $self->schema->ordered_versions) { apply_all_roles( $self, - 'DBIx::Class::DeploymentHandler::WithExplicitVersions' + 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { + interface_role => 'DBIx::Class::DeploymentHandler::HandlesVersioning', + class_name => 'DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions', + delegate_name => 'version_handler', + attributes_to_assume => [qw( database_version schema_version to_version )], + } ); } else { apply_all_roles( $self, - 'DBIx::Class::DeploymentHandler::WithDatabaseToSchemaVersions' + 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { + interface_role => 'DBIx::Class::DeploymentHandler::HandlesVersioning', + class_name => 'DBIx::Class::DeploymentHandler::VersionHandler::DatabaseToSchemaVersions', + delegate_name => 'version_handler', + attributes_to_assume => [qw( database_version schema_version to_version )], + } ); } + # the following is just a hack so that ->version_storage + # won't be lazy + $self->version_storage; } __PACKAGE__->meta->make_immutable; @@ -36,4 +60,61 @@ __PACKAGE__->meta->make_immutable; __END__ +=head1 DEPRECATED +I begrudgingly made this module (and other related modules) to make porting +from L relatively simple. I will make changes +to ensure that it works with output from L etc, +but I will not add any new features to it. It already lacks numerous features +that the full version provides in style: + +=over + +=item * + +Downgrades + +=item * + +Multiple files for migrations + +=item * + +Perl files in migrations + +=item * + +Shared Perl/SQL for different databases + +=back + +And there's probably more. + +At version 1.000000 usage of this module will emit a warning. At version +2.000000 it will be removed entirely. + +To migrate to the New Hotness take a look at: +L and +L. + +=head1 SYNOPSIS + +Look at L. I won't repeat +it here to emphasize, yet again, that this should not be used unless you really +want to live in the past. + +=head1 WHERE IS ALL THE DOC?! + +C extends +L, so that's probably the first place to +look when you are trying to figure out how everything works. + +Next would be to look at all the pieces that fill in the blanks that +L expects to be filled. They would be +L, +L, and +L. Also, this class +is special in that it applies either +L or +L depending on +your schema.