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::Schema->connect(@connection);
25 $DBICVersion::Schema::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::Schema->connect(@connection);
59 $DBICVersion::Schema::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;
73 $s->resultset('Foo')->create({
77 } 'schema not deployed';
79 $s->resultset('Foo')->create({
83 } 'schema not uppgrayyed';
86 $s->resultset('Foo')->create({
90 } 'schema is deployed';
94 use_ok 'DBICVersion_v3';
95 my $s = DBICVersion::Schema->connect(@connection);
96 $DBICVersion::Schema::VERSION = 3;
97 ok($s, 'DBICVersion::Schema 3 instantiates correctly');
98 my $handler = DH->new({
100 script_directory => $sql_dir,
105 ok($handler, 'DBIx::Class::DeploymentHandler w/3 instantiates correctly');
107 my $version = $s->schema_version();
108 $handler->prepare_install;
110 $s->resultset('Foo')->create({
115 } 'schema not deployed';
118 $s->resultset('Foo')->create({
123 } 'schema is deployed';
127 use_ok 'DBICVersion_v4';
128 my $s = DBICVersion::Schema->connect(@connection);
129 $DBICVersion::Schema::VERSION = 2;
130 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
131 my $handler = DH->new({
133 script_directory => $sql_dir,
138 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
140 my $version = $s->schema_version();
142 $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';