Added helpful logging for the schema_from_schema_loader ScriptHelper
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / deploy_methods / sql_translator_protoschema_transform.t
CommitLineData
f9c6ab50 1#!perl
2
cbbd1b5f 3use strict;
4use warnings;
5
f9c6ab50 6use Test::More;
f9c6ab50 7
8use lib 't/lib';
9use DBICDHTest;
10use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
7b3d00f9 11use File::Spec::Functions qw(catfile splitdir);
f9c6ab50 12use File::Path qw(rmtree mkpath);
7b3d00f9 13use File::Temp qw(tempfile tempdir);
f9c6ab50 14
f3b5161e 15my $dbh = DBICDHTest::dbh();
624e3018 16my @connection = (sub { $dbh }, { ignore_version => 1 });
7b3d00f9 17my $sql_dir = tempdir( CLEANUP => 1 );
f9c6ab50 18
19VERSION1: {
20 use_ok 'DBICVersion_v1';
21 my $s = DBICVersion::Schema->connect(@connection);
22 my $dm = Translator->new({
23 schema => $s,
24 script_directory => $sql_dir,
25 databases => ['SQLite'],
26 sql_translator_args => { add_drop_table => 0 },
27 });
28
29 $dm->prepare_deploy;
30 $dm->deploy;
31}
32
33VERSION2: {
34 use_ok 'DBICVersion_v2';
35 my $s = DBICVersion::Schema->connect(@connection);
36 my $dm = Translator->new({
37 schema => $s,
38 script_directory => $sql_dir,
39 databases => ['SQLite'],
40 sql_translator_args => { add_drop_table => 0 },
41 txn_wrap => 1,
42 });
43
f9c6ab50 44 $dm->prepare_deploy;
7b3d00f9 45 mkpath(catfile(splitdir($sql_dir), qw(_preprocess_schema upgrade 1.0-2.0 )));
f9c6ab50 46 open my $prerun, '>',
7b3d00f9 47 catfile(splitdir($sql_dir), qw(_preprocess_schema upgrade 1.0-2.0 003-semiautomatic.pl ));
2dfc27ba 48 my (undef, $fn) = tempfile(OPEN => 0);
f9c6ab50 49 print {$prerun}
2dfc27ba 50 qq^sub {
51 open my \$fh, ">", '$fn'
52 if \$_[0]->isa("SQL::Translator::Schema")
53 && \$_[1]->isa("SQL::Translator::Schema");
54 }^;
f9c6ab50 55 close $prerun;
56 $dm->prepare_upgrade({
57 from_version => '1.0',
58 to_version => '2.0',
59 version_set => [qw(1.0 2.0)]
60 });
2dfc27ba 61 ok -e $fn, 'intermediate script ran with the right args';
f9c6ab50 62 $dm->upgrade_single_step({ version_set => [qw( 1.0 2.0 )] });
63}
64done_testing;
65#vim: ts=2 sw=2 expandtab