my $PROGNAME = basename($0);
my $VERSION = '0.1.0';
my $SQL_DIR = './sqls';
+my $DATA_DIR = './data';
sub recreate_database {
my $opts = shift;
if (!$dbh) {
usage('cannot connect to database.');
}
+ print "create databases...\n";
+ exec_sql($dbh, $SQL_DIR);
- opendir(my $dh, $SQL_DIR) || die "cannot opendir $SQL_DIR: $!\n";
- while(my $fname = readdir $dh) {
- if ($fname =~ m/^\./) {
- next;
- }
- if ($fname =~ m/^.*\.sql$/) {
- print "execute $fname...\n";
- my $sql = get_sql_contents($fname);
- my $sth = $dbh->prepare($sql);
- my $result = $sth->execute;
- if (!$result) {
- print "sql execute error: $!\n";
- }
- $sth->finish;
- }
- }
+ print "insert datas...\n";
+ exec_sql($dbh, $DATA_DIR);
$dbh->disconnect();
print "done.\n";
}
+sub exec_sql {
+ my $dbh = shift;
+ my $target = shift;
+
+ opendir(my $dh, $target) || die "cannot opendir $target: $!\n";
+ while(my $fname = readdir $dh) {
+ if ($fname =~ m/^\./) {
+ next;
+ }
+ if ($fname =~ m/^.*\.sql$/) {
+ print "execute $fname...\n";
+ my $sql = get_sql_contents($target, $fname);
+ # my $sth = $dbh->prepare($sql);
+ # my $result = $sth->execute;
+ my $result = $dbh->do($sql);
+ if (!$result) {
+ print "sql execute error: $!\n";
+ }
+ }
+ }
+}
+
sub get_sql_contents {
- my $fname = shift @_;
+ my $dirname = shift @_;
+ my $fname = shift @_;
- my $pathname = File::Spec->catfile($SQL_DIR, $fname);
- my $fh;
+ my $pathname = File::Spec->catfile($dirname, $fname);
+ my $fh;
- if (!open($fh, '<', $pathname)) {
- print "cannot open $fh: $!\n";
- return;
- }
+ if (!open($fh, '<', $pathname)) {
+ print "cannot open $fh: $!\n";
+ return;
+ }
- my $sql = do { local $/; <$fh> };
- return $sql;
+ my $sql = do { local $/; <$fh> };
+ return $sql;
}