X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FDBIx-Class-DeploymentHandler.git;a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FDeployMethod%2FSQL%2FTranslator%2FDeprecated.pm;h=3fcdb57a9f5046ef1d51425544bc9894f23afdf4;hp=ca68fefe7363e8825af0c5b9cae15a69ce0b93ee;hb=97aa9a748e07c9e5875d56bd7d6554e481911c5d;hpb=3c1b5ee88fd8f12a1bcae416381d994d106840cc diff --git a/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator/Deprecated.pm b/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator/Deprecated.pm index ca68fef..3fcdb57 100644 --- a/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator/Deprecated.pm +++ b/lib/DBIx/Class/DeploymentHandler/DeployMethod/SQL/Translator/Deprecated.pm @@ -1,29 +1,114 @@ package DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated; + use Moose; -use Method::Signatures::Simple; -extends 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator', +# ABSTRACT: (DEPRECATED) Use this if you are stuck in the past + +use File::Spec::Functions; + +extends 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator'; + +sub _ddl_schema_consume_filenames { + my ($self, $type, $version) = @_; + return [$self->_ddl_schema_produce_filename($type, $version)] +} -method _ddl_schema_filename($type, $version, $dir) { +sub _ddl_schema_produce_filename { + my ($self, $type, $version) = @_; my $filename = ref $self->schema; $filename =~ s/::/-/g; - $filename = File::Spec->catfile( - $dir, "$filename-schema-$version-$type.sql" + $filename = catfile( + $self->script_directory, "$filename-$version-$type.sql" ); - return [$filename]; + return $filename; } -method _ddl_schema_diff_filename($type, $versions, $dir) { +sub _ddl_schema_up_produce_filename { + my ($self, $type, $versions, $dir) = @_; my $filename = ref $self->schema; $filename =~ s/::/-/g; - $filename = File::Spec->catfile( - $dir, "$filename-diff-" . join( q(-), @{$versions} ) . "-$type.sql" + $filename = catfile( + $self->script_directory, "$filename-" . join( q(-), @{$versions} ) . "-$type.sql" ); - return [$filename]; + return $filename; +} + +sub _ddl_schema_up_consume_filenames { + my ($self, $type, $versions) = @_; + return [$self->_ddl_schema_up_produce_filename($type, $versions)] } +__PACKAGE__->meta->make_immutable; + 1; + +# vim: ts=2 sw=2 expandtab + +__END__ + +=head1 DESCRIPTION + +All this module does is override a few parts of +L so that the files generated with +L will work with this out of the box. + +=head1 DEPRECATED + +I begrudgingly made this module (and other related modules) to keep 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. + +Once I hit major version 1 usage of this module will emit a warning. +On version 2 it will be removed entirely. + +=head1 THIS SUCKS + +Yeah, this old Deprecated thing is a drag. It can't do downgrades, it can only +use a single .sql file for migrations, it has no .pl support. You should +totally switch! Here's how: + + my $init_part = ref $schema; + $init_part =~ s/::/-/g; + opendir my $dh, 'sql'; + for (readdir $dh) { + if (/\Q$init_part\E-(.*)-(.*)(?:-(.*))?/) { + if (defined $3) { + cp $_, $dh->deploy_method->_ddl_schema_up_produce_filename($3, [$1, $2]); + } else { + cp $_, $dh->deploy_method->_ddl_schema_produce_filename($2, $1); + } + } + } + +=head1 OVERRIDDEN METHODS + +=over + +=item * + +L + +=item * + +L + +=item * + +L + +=item * + +L + +=back + +=head1 SEE ALSO + +This class is an implementation of +L. Pretty much all the +documentation is there.