# $Id: db-common.pl 58 2006-05-04 00:04:10Z sky $
use strict;
use File::Spec;
sub db_filename {
my($dbname) = @_;
$dbname . '.db';
}
sub setup_dbs {
my($info) = @_;
teardown_dbs(keys %$info);
for my $dbname (keys %$info) {
my $dbh = DBI->connect('dbi:SQLite:dbname=' . db_filename($dbname),
'', '', { RaiseError => 1, PrintError => 0 });
for my $table (@{ $info->{$dbname} }) {
$dbh->do( create_sql($table) );
}
$dbh->disconnect;
}
}
sub teardown_dbs {
my(@dbs) = @_;
for my $db (@dbs) {
my $file = db_filename($db);
next unless -e $file;
unlink $file or die "Can't teardown $db: $!";
}
}
sub create_sql {
my($table) = @_;
my $file = File::Spec->catfile('t', 'schemas', $table . '.sql');
open my $fh, $file or die "Can't open $file: $!";
my $sql = do { local $/; <$fh> };
close $fh;
$sql;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1