6 use File::Path 'remove_tree';
11 unlink 'db.db' if -e 'db.db';
20 my $db = 'dbi:SQLite:db.db';
21 my @connection = ($db, '', '', { ignore_version => 1 });
22 my $sql_dir = 't/sql';
27 use_ok 'DBICVersion_v1';
28 my $s = DBICVersion::Schema->connect(@connection);
29 is $s->schema_version, '1.0', 'schema version is at 1.0';
30 ok($s, 'DBICVersion::Schema 1.0 instantiates correctly');
31 my $handler = $bundle->new({
32 upgrade_directory => $sql_dir,
34 databases => 'SQLite',
35 sqltargs => { add_drop_table => 0 },
38 ok($handler, 'DBIx::Class::DeploymentHandler w/1.0 instantiates correctly');
40 my $version = $s->schema_version();
41 $handler->prepare_install();
44 $s->resultset('Foo')->create({
47 } 'schema not deployed';
51 } 'cannot install twice';
53 $s->resultset('Foo')->create({
56 } 'schema is deployed';
60 use_ok 'DBICVersion_v2';
61 my $s = DBICVersion::Schema->connect(@connection);
62 is $s->schema_version, '2.0', 'schema version is at 2.0';
63 ok($s, 'DBICVersion::Schema 2.0 instantiates correctly');
64 my $handler = $bundle->new({
65 upgrade_directory => $sql_dir,
67 databases => 'SQLite',
70 ok($handler, 'DBIx::Class::DeploymentHandler w/2.0 instantiates correctly');
72 my $version = $s->schema_version();
73 $handler->prepare_install();
74 $handler->prepare_upgrade('1.0', $version);
76 $s->resultset('Foo')->create({
80 } 'schema not deployed';
82 $s->resultset('Foo')->create({
86 } 'schema not uppgrayyed';
89 $s->resultset('Foo')->create({
93 } 'schema is deployed';
97 use_ok 'DBICVersion_v3';
98 my $s = DBICVersion::Schema->connect(@connection);
99 is $s->schema_version, '3.0', 'schema version is at 3.0';
100 ok($s, 'DBICVersion::Schema 3.0 instantiates correctly');
101 my $handler = $bundle->new({
102 upgrade_directory => $sql_dir,
104 databases => 'SQLite',
107 ok($handler, 'DBIx::Class::DeploymentHandler w/3.0 instantiates correctly');
109 my $version = $s->schema_version();
110 $handler->prepare_install;
111 $handler->prepare_upgrade( '2.0', $version );
113 $s->resultset('Foo')->create({
118 } 'schema not deployed';
121 $s->resultset('Foo')->create({
126 } 'schema is deployed';
130 use_ok 'DBICVersion_v4';
131 my $s = DBICVersion::Schema->connect(@connection);
132 is $s->schema_version, '2.0', 'schema version is at 2.0';
133 ok($s, 'DBICVersion::Schema 2.0 instantiates correctly');
134 my $handler = $bundle->new({
135 upgrade_directory => $sql_dir,
137 databases => 'SQLite',
140 ok($handler, 'DBIx::Class::DeploymentHandler w/2.0 instantiates correctly');
142 my $version = $s->schema_version();
143 $handler->prepare_downgrade('3.0', $version);
145 $s->resultset('Foo')->create({
150 } 'schema at version 3';
153 $s->resultset('Foo')->create({
158 } 'schema not at version 3';
160 $s->resultset('Foo')->create({
164 } 'schema is at version 2';