cd5e4321786a99948a0587f48cd082f8a6ecce0c
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / lib / make_dbictest_db_with_unique.pm
1 package make_dbictest_db_with_unique;
2
3 use strict;
4 use warnings;
5 use DBI;
6
7 eval { require DBD::SQLite };
8 my $class = $@ ? 'SQLite2' : 'SQLite';
9
10 my $fn = './t/dbictest_with_unique.db';
11
12 unlink($fn);
13 our $dsn = "dbi:$class:dbname=$fn";
14 my $dbh = DBI->connect($dsn);
15
16 $dbh->do($_) for (
17     q|CREATE TABLE foos (
18         fooid INTEGER PRIMARY KEY,
19         footext TEXT
20       )|,
21     q|CREATE TABLE bar (
22         barid INTEGER PRIMARY KEY,
23         foo_id INTEGER NOT NULL REFERENCES foos (fooid)
24       )|,
25     q|CREATE TABLE bazs (
26         bazid INTEGER PRIMARY KEY,
27         baz_num INTEGER NOT NULL UNIQUE
28       )|,
29     q|CREATE TABLE quuxs (
30         quuxid INTEGER PRIMARY KEY,
31         baz_id INTEGER NOT NULL UNIQUE,
32         FOREIGN KEY (baz_id) REFERENCES bazs (baz_num)
33       )|,
34     q|CREATE TABLE stations_visited (
35         id INTEGER PRIMARY KEY
36       )|,
37     q|CREATE TABLE email (
38         id INTEGER PRIMARY KEY,
39         to_id INTEGER REFERENCES foos (fooid),
40         from_id INTEGER REFERENCES foos (fooid)
41       )|,
42     q|INSERT INTO foos VALUES (1,'Foos text for number 1')|,
43     q|INSERT INTO foos VALUES (2,'Foos record associated with the Bar with barid 3')|,
44     q|INSERT INTO foos VALUES (3,'Foos text for number 3')|,
45     q|INSERT INTO foos VALUES (4,'Foos text for number 4')|,
46     q|INSERT INTO bar VALUES (1,4)|,
47     q|INSERT INTO bar VALUES (2,3)|,
48     q|INSERT INTO bar VALUES (3,2)|,
49     q|INSERT INTO bar VALUES (4,1)|,
50     q|INSERT INTO bazs VALUES (1,20)|,
51     q|INSERT INTO bazs VALUES (2,19)|,
52     q|INSERT INTO quuxs VALUES (1,20)|,
53     q|INSERT INTO quuxs VALUES (2,19)|,
54     q|INSERT INTO stations_visited VALUES (1)|,
55 );
56
57 END { unlink($fn); }
58
59 1;