Commit | Line | Data |
c496748b |
1 | package make_dbictest_db_with_unique; |
66afce69 |
2 | |
3 | use strict; |
4 | use warnings; |
5 | use DBI; |
c213fd3d |
6 | use dbixcsl_test_dir qw/$tdir/; |
7 | |
66afce69 |
8 | |
9 | eval { require DBD::SQLite }; |
10 | my $class = $@ ? 'SQLite2' : 'SQLite'; |
11 | |
c213fd3d |
12 | my $fn = "$tdir/dbictest_with_unique.db"; |
66afce69 |
13 | |
14 | unlink($fn); |
15 | our $dsn = "dbi:$class:dbname=$fn"; |
16 | my $dbh = DBI->connect($dsn); |
be9f4d42 |
17 | $dbh->do('PRAGMA SYNCHRONOUS = OFF'); |
66afce69 |
18 | |
19 | $dbh->do($_) for ( |
20 | q|CREATE TABLE foos ( |
21 | fooid INTEGER PRIMARY KEY, |
22 | footext TEXT |
23 | )|, |
24 | q|CREATE TABLE bar ( |
25 | barid INTEGER PRIMARY KEY, |
b24cb177 |
26 | foo_id INTEGER NOT NULL REFERENCES foos (fooid) |
66afce69 |
27 | )|, |
a0e0a56a |
28 | q|CREATE TABLE bazs ( |
66afce69 |
29 | bazid INTEGER PRIMARY KEY, |
40914006 |
30 | baz_num INTEGER NOT NULL UNIQUE, |
31 | stations_visited_id INTEGER REFERENCES stations_visited (id) |
66afce69 |
32 | )|, |
a0e0a56a |
33 | q|CREATE TABLE quuxs ( |
66afce69 |
34 | quuxid INTEGER PRIMARY KEY, |
a0e0a56a |
35 | baz_id INTEGER NOT NULL UNIQUE, |
36 | FOREIGN KEY (baz_id) REFERENCES bazs (baz_num) |
66afce69 |
37 | )|, |
ecf930e6 |
38 | q|CREATE TABLE stations_visited ( |
40914006 |
39 | id INTEGER PRIMARY KEY, |
40 | quuxs_id INTEGER REFERENCES quuxs (quuxid) |
ecf930e6 |
41 | )|, |
9990e58f |
42 | q|CREATE TABLE RouteChange ( |
43 | id INTEGER PRIMARY KEY, |
a9a6e6bb |
44 | QuuxsId INTEGER REFERENCES quuxs (quuxid), |
45 | Foo2Bar INTEGER |
9990e58f |
46 | )|, |
ecf930e6 |
47 | q|CREATE TABLE email ( |
48 | id INTEGER PRIMARY KEY, |
49 | to_id INTEGER REFERENCES foos (fooid), |
50 | from_id INTEGER REFERENCES foos (fooid) |
51 | )|, |
a0e0a56a |
52 | q|INSERT INTO foos VALUES (1,'Foos text for number 1')|, |
53 | q|INSERT INTO foos VALUES (2,'Foos record associated with the Bar with barid 3')|, |
54 | q|INSERT INTO foos VALUES (3,'Foos text for number 3')|, |
55 | q|INSERT INTO foos VALUES (4,'Foos text for number 4')|, |
66afce69 |
56 | q|INSERT INTO bar VALUES (1,4)|, |
57 | q|INSERT INTO bar VALUES (2,3)|, |
58 | q|INSERT INTO bar VALUES (3,2)|, |
59 | q|INSERT INTO bar VALUES (4,1)|, |
40914006 |
60 | q|INSERT INTO bazs VALUES (1,20,1)|, |
61 | q|INSERT INTO bazs VALUES (2,19,1)|, |
a0e0a56a |
62 | q|INSERT INTO quuxs VALUES (1,20)|, |
63 | q|INSERT INTO quuxs VALUES (2,19)|, |
40914006 |
64 | q|INSERT INTO stations_visited VALUES (1,1)|, |
a9a6e6bb |
65 | q|INSERT INTO RouteChange VALUES (1,1,3)|, |
66afce69 |
66 | ); |
67 | |
6d358d58 |
68 | END { unlink($fn) unless $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP}; } |
66afce69 |
69 | |
70 | 1; |