8 use DBIx::Class::DeploymentHandler;
9 use aliased 'DBIx::Class::DeploymentHandler', 'DH';
11 use File::Path 'remove_tree';
18 my $dbh = DBICDHTest::dbh();
19 my @connection = (sub { $dbh }, { ignore_version => 1 });
20 my $sql_dir = 't/sql';
23 use_ok 'DBICVersion_v1';
24 my $s = DBICVersion::Schema1->connect(@connection);
25 $DBICVersion::Schema1::VERSION = 1;
26 ok($s, 'DBICVersion::Schema 1 instantiates correctly');
27 my $handler = DH->new({
29 script_directory => $sql_dir,
32 sql_translator_args => { add_drop_table => 0 },
35 ok($handler, 'DBIx::Class::DeploymentHandler w/1 instantiates correctly');
37 my $version = $s->schema_version;
38 $handler->prepare_install;
41 $s->resultset('Foo')->create({
44 } 'schema not deployed';
48 } 'cannot install twice';
50 $s->resultset('Foo')->create({
53 } 'schema is deployed';
57 use_ok 'DBICVersion_v2';
58 my $s = DBICVersion::Schema2->connect(@connection);
59 $DBICVersion::Schema2::VERSION = 2;
60 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
61 my $handler = DH->new({
63 script_directory => $sql_dir,
68 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
70 my $version = $s->schema_version();
71 $handler->prepare_install;
72 #$handler->prepare_upgrade({ from_version => 1, to_version => 2 });
74 $s->resultset('Foo')->create({
78 } 'schema not deployed';
80 $s->resultset('Foo')->create({
84 } 'schema not uppgrayyed';
87 $s->resultset('Foo')->create({
91 } 'schema is deployed';
95 use_ok 'DBICVersion_v3';
96 my $s = DBICVersion::Schema3->connect(@connection);
97 $DBICVersion::Schema3::VERSION = 3;
98 ok($s, 'DBICVersion::Schema 3 instantiates correctly');
99 my $handler = DH->new({
101 script_directory => $sql_dir,
106 ok($handler, 'DBIx::Class::DeploymentHandler w/3 instantiates correctly');
108 my $version = $s->schema_version();
109 $handler->prepare_install;
111 $s->resultset('Foo')->create({
116 } 'schema not deployed';
119 $s->resultset('Foo')->create({
124 } 'schema is deployed';
128 use_ok 'DBICVersion_v4';
129 my $s = DBICVersion::Schema4->connect(@connection);
130 $DBICVersion::Schema4::VERSION = 2;
131 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
132 my $handler = DH->new({
134 script_directory => $sql_dir,
139 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
141 my $version = $s->schema_version();
143 $s->resultset('Foo')->create({
147 } 'schema at version 3';
150 $s->resultset('Foo')->create({
155 } 'schema not at version 3';
157 $s->resultset('Foo')->create({
161 } 'schema is at version 2';
163 is $handler->version_storage->database_version => 2,
164 'database version is down to 2';