8 use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
9 use File::Spec::Functions;
11 my $db = 'dbi:SQLite:db.db';
12 my @connection = ($db, '', '', { ignore_version => 1 });
13 my $sql_dir = 't/sql';
18 use_ok 'DBICVersion_v1';
19 my $s = DBICVersion::Schema->connect(@connection);
20 my $dm = Translator->new({
22 upgrade_directory => $sql_dir,
23 databases => ['SQLite'],
24 sqltargs => { add_drop_table => 0 },
27 ok( $dm, 'DBIC::DH::DM::SQL::Translator gets instantiated correctly' );
32 -f catfile(qw( t sql SQLite schema 1.0 001-auto.sql )),
33 '1.0 schema gets generated properly'
37 $s->resultset('Foo')->create({
40 } 'schema not deployed';
45 $s->resultset('Foo')->create({
48 } 'schema is deployed';
52 use_ok 'DBICVersion_v2';
53 my $s = DBICVersion::Schema->connect(@connection);
54 my $dm = Translator->new({
56 upgrade_directory => $sql_dir,
57 databases => ['SQLite'],
58 sqltargs => { add_drop_table => 0 },
61 ok( $dm, 'DBIC::DH::SQL::Translator w/2.0 instantiates correctly');
63 $version = $s->schema_version();
64 $dm->prepare_install();
66 -f catfile(qw( t sql SQLite schema 2.0 001-auto.sql )),
67 '2.0 schema gets generated properly'
69 $dm->prepare_upgrade('1.0', $version);
71 -f catfile(qw( t sql SQLite up 1.0-2.0 001-auto.sql )),
72 '1.0-2.0 diff gets generated properly'
74 $dm->prepare_downgrade($version, '1.0');
76 -f catfile(qw( t sql SQLite down 2.0-1.0 001-auto.sql )),
77 '1.0-2.0 diff gets generated properly'
80 $s->resultset('Foo')->create({
84 } 'schema not deployed';
86 $s->resultset('Foo')->create({
90 } 'schema not uppgrayyed';
91 $dm->_upgrade_single_step([qw( 1.0 2.0 )]);
93 $s->resultset('Foo')->create({
97 } 'schema is deployed';
101 use_ok 'DBICVersion_v3';
102 my $s = DBICVersion::Schema->connect(@connection);
103 my $dm = Translator->new({
105 upgrade_directory => $sql_dir,
106 databases => ['SQLite'],
107 sqltargs => { add_drop_table => 0 },
110 ok( $dm, 'DBIC::DH::SQL::Translator w/3.0 instantiates correctly');
112 $version = $s->schema_version();
113 $dm->prepare_install;
115 -f catfile(qw( t sql SQLite schema 3.0 001-auto.sql )),
116 '2.0 schema gets generated properly'
118 $dm->prepare_upgrade( '1.0', $version );
120 -f catfile(qw( t sql SQLite up 1.0-2.0 001-auto.sql )),
121 '1.0-3.0 diff gets generated properly'
123 $dm->prepare_upgrade( '2.0', $version );
125 -f catfile(qw( t sql SQLite up 1.0-2.0 001-auto.sql )),
126 '2.0-3.0 diff gets generated properly'
129 $s->resultset('Foo')->create({
134 } 'schema not deployed';
135 $dm->_upgrade_single_step([qw( 2.0 3.0 )]);
137 $s->resultset('Foo')->create({
142 } 'schema is deployed';