8 use DBIx::Class::DeploymentHandler;
9 use aliased 'DBIx::Class::DeploymentHandler', 'DH';
12 use File::Temp 'tempdir';
13 use Test::Fatal qw(lives_ok dies_ok);
16 my $dbh = DBICDHTest::dbh();
17 my @connection = (sub { $dbh }, { ignore_version => 1 });
18 my $sql_dir = tempdir( CLEANUP => 1 );
21 use_ok 'DBICVersion_v1';
22 my $s = DBICVersion::Schema->connect(@connection);
23 $DBICVersion::Schema::VERSION = 1;
24 ok($s, 'DBICVersion::Schema 1 instantiates correctly');
25 my $handler = DH->new({
27 script_directory => $sql_dir,
30 sql_translator_args => { add_drop_table => 0 },
33 ok($handler, 'DBIx::Class::DeploymentHandler w/1 instantiates correctly');
35 my $version = $s->schema_version;
36 $handler->prepare_install;
39 $s->resultset('Foo')->create({
42 } 'schema not deployed';
46 } 'cannot install twice';
48 $s->resultset('Foo')->create({
51 } 'schema is deployed';
55 use_ok 'DBICVersion_v2';
56 my $s = DBICVersion::Schema->connect(@connection);
57 $DBICVersion::Schema::VERSION = 2;
58 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
59 my $handler = DH->new({
61 script_directory => $sql_dir,
66 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
68 my $version = $s->schema_version();
69 $handler->prepare_install;
71 $s->resultset('Foo')->create({
75 } 'schema not deployed';
77 $s->resultset('Foo')->create({
81 } 'schema not uppgrayyed';
84 $s->resultset('Foo')->create({
88 } 'schema is deployed';
92 use_ok 'DBICVersion_v3';
93 my $s = DBICVersion::Schema->connect(@connection);
94 $DBICVersion::Schema::VERSION = 3;
95 ok($s, 'DBICVersion::Schema 3 instantiates correctly');
96 my $handler = DH->new({
98 script_directory => $sql_dir,
103 ok($handler, 'DBIx::Class::DeploymentHandler w/3 instantiates correctly');
105 my $version = $s->schema_version();
106 $handler->prepare_install;
108 $s->resultset('Foo')->create({
113 } 'schema not deployed';
116 $s->resultset('Foo')->create({
121 } 'schema is deployed';
125 use_ok 'DBICVersion_v4';
126 my $s = DBICVersion::Schema->connect(@connection);
127 $DBICVersion::Schema::VERSION = 2;
128 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
129 my $handler = DH->new({
131 script_directory => $sql_dir,
136 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
138 my $version = $s->schema_version();
140 $s->resultset('Foo')->create({
145 } 'schema at version 3';
148 $s->resultset('Foo')->create({
153 } 'schema not at version 3';
155 $s->resultset('Foo')->create({
159 } 'schema is at version 2';
161 is $handler->version_storage->database_version => 2,
162 'database version is down to 2';