From 39046357fbd0a0a6c8fdacca5896d8db70c76521 Mon Sep 17 00:00:00 2001 From: hylom Date: Fri, 7 Oct 2016 22:09:15 +0900 Subject: [PATCH] utils/db_script/create_tables.pl: support data insertion --- src/utils/db_scripts/create_tables.pl | 62 +++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/src/utils/db_scripts/create_tables.pl b/src/utils/db_scripts/create_tables.pl index 6e6eb73f..20bc6b38 100755 --- a/src/utils/db_scripts/create_tables.pl +++ b/src/utils/db_scripts/create_tables.pl @@ -12,6 +12,7 @@ use File::Spec; my $PROGNAME = basename($0); my $VERSION = '0.1.0'; my $SQL_DIR = './sqls'; +my $DATA_DIR = './data'; sub recreate_database { my $opts = shift; @@ -67,42 +68,53 @@ sub main { 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; } -- 2.11.0