1package make_dbictest_db_multi_m2m; 2 3use strict; 4use warnings; 5use DBI; 6use dbixcsl_test_dir qw/$tdir/; 7 8eval { require DBD::SQLite }; 9my $class = $@ ? 'SQLite2' : 'SQLite'; 10 11my $fn = "$tdir/dbictest_multi_m2m.db"; 12 13unlink($fn); 14our $dsn = "dbi:$class:dbname=$fn"; 15my $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 47END { unlink($fn) unless $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP}; } 48 491; 50