Fix fixtures to work with older DBD::SQLite
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / lib / make_dbictest_db_multi_m2m.pm
1 package make_dbictest_db_multi_m2m;
2
3 use strict;
4 use warnings;
5 use DBI;
6 use dbixcsl_test_dir qw/$tdir/;
7
8 eval { require DBD::SQLite };
9 my $class = $@ ? 'SQLite2' : 'SQLite';
10
11 my $fn = "$tdir/dbictest_multi_m2m.db";
12
13 unlink($fn);
14 our $dsn = "dbi:$class:dbname=$fn";
15 my $dbh = DBI->connect($dsn);
16 $dbh->do('PRAGMA SYNCHRONOUS = OFF');
17
18 $dbh->do($_) for (
19     q|CREATE TABLE foo (
20         foo_id INTEGER PRIMARY KEY
21       )|,
22     q|CREATE TABLE bar (
23         bar_id INTEGER PRIMARY KEY
24       )|,
25     q|CREATE TABLE foo_bar_one (
26         foo_id INTEGER NOT NULL REFERENCES foo(foo_id),
27         bar_id INTEGER NOT NULL REFERENCES bar(bar_id),
28         PRIMARY KEY (foo_id, bar_id)
29       )|,
30     q|CREATE TABLE foo_bar_two (
31         foo_id INTEGER NOT NULL REFERENCES foo(foo_id),
32         bar_id INTEGER NOT NULL REFERENCES bar(bar_id),
33         PRIMARY KEY (foo_id, bar_id)
34       )|,
35     q|INSERT INTO foo (foo_id) VALUES (1)|,
36     q|INSERT INTO foo (foo_id) VALUES (2)|,
37     q|INSERT INTO bar (bar_id) VALUES (1)|,
38     q|INSERT INTO bar (bar_id) VALUES (2)|,
39     q|INSERT INTO foo_bar_one (foo_id, bar_id) VALUES (1,1)|,
40     q|INSERT INTO foo_bar_one (foo_id, bar_id) VALUES (2,2)|,
41     q|INSERT INTO foo_bar_two (foo_id, bar_id) VALUES (1,1)|,
42     q|INSERT INTO foo_bar_two (foo_id, bar_id) VALUES (1,2)|,
43     q|INSERT INTO foo_bar_two (foo_id, bar_id) VALUES (2,1)|,
44     q|INSERT INTO foo_bar_two (foo_id, bar_id) VALUES (2,2)|,
45   );
46
47 END { unlink($fn) unless $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP}; }
48
49 1;