99 |
|
|
100 |
require_config; |
require_config; |
101 |
|
|
102 |
warn "# reading SQL queries from $sql_dir\n" if $debug; |
warn "SQL queries from $sql_dir\n"; |
103 |
|
|
104 |
opendir(DIR, $sql_dir) || die "can't opendir $sql_dir: $!"; |
opendir(DIR, $sql_dir) || die "can't opendir $sql_dir: $!"; |
105 |
my @sql_files = sort grep { /\.sql$/i && -f "$sql_dir/$_" } readdir(DIR); |
my @sql_files = sort grep { /\.sql$/i && -f "$sql_dir/$_" } readdir(DIR); |
124 |
my $database = shift || return; |
my $database = shift || return; |
125 |
print STDERR "## connect to $database\n" if $debug; |
print STDERR "## connect to $database\n" if $debug; |
126 |
$dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr; |
$dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr; |
127 |
$dbh->do( qq{ set names '$db_encoding'; } ) if $db_encoding && $dsn =~ m{mysql}; |
if ( $db_encoding ) { |
128 |
|
if ( $dsn =~ m{Pg} ) { |
129 |
|
$dbh->do( qq{ set client_encoding = '$db_encoding'; } ); |
130 |
|
} elsif ( $dsn =~ m{mysql} ) { |
131 |
|
$dbh->do( qq{ set names '$db_encoding'; } ); |
132 |
|
} else { |
133 |
|
warn "Don't know how to set encoding to $db_encoding for $dsn"; |
134 |
|
} |
135 |
|
} |
136 |
} |
} |
137 |
|
|
138 |
use_database( $database ); |
use_database( $database ); |
195 |
|
|
196 |
foreach my $sql ( split(/;/, $full_sql ) ) { |
foreach my $sql ( split(/;/, $full_sql ) ) { |
197 |
|
|
198 |
warn "SQL: $sql\n" if $debug; |
warn "SQL: $sql\n"; |
199 |
|
|
200 |
my $sth = $dbh->prepare($sql); |
my $sth = $dbh->prepare($sql); |
201 |
$sth->execute(); |
$sth->execute(); |