chiark / gitweb /
New CommodsDatabase module for broken out DBI stuff
[ypp-sc-tools.web-live.git] / pctb / db-idempotent-populate
index 66fd6f5e380a2879948fb61ed04b6051440b7ef8..b7743ed9cb1ff3f78ef9b6be379d4635ec467e1e 100755 (executable)
@@ -31,35 +31,23 @@ use strict (qw(vars));
 use DBI;
 
 use Commods;
+use CommodsDatabase;
 
 @ARGV==1 or die;
 my ($oceanname) = @ARGV;
 
-my $dbfn= "OCEAN-$oceanname.db";
-
-our $dbh;
-
-sub dbdoall ($) {
-    foreach my $cmd (split /\;/, $_[0]) {
-       $dbh->do("$cmd;") if $cmd =~ m/\S/;
-    }
-}
-
 #---------- setup ----------
 
 parse_masters_ocean($oceanname);
 our $ocean= $oceans{$oceanname};
 
-$dbh= DBI->connect("dbi:SQLite:$dbfn",'','',
-                  { AutoCommit=>0,
-                    RaiseError=>1, ShowErrorStatement=>1,
-                    unicode=>1 })
-    or die "$dbfn $DBI::errstr ?";
+db_setocean($oceanname);
+db_connect();
 
 #---------- schema ----------
 
 foreach my $bs (qw(buy sell)) {
-    dbdoall(<<END)
+    db_doall(<<END)
  CREATE TABLE IF NOT EXISTS $bs (
        commodid        INTEGER                 NOT NULL,
        islandid        INTEGER                 NOT NULL,
@@ -74,7 +62,7 @@ END
     ;
 }
 
-dbdoall(<<END)
+db_doall(<<END)
  CREATE TABLE IF NOT EXISTS commods (
        commodid        INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
        commodname      TEXT    UNIQUE          NOT NULL,
@@ -199,7 +187,7 @@ END
        distance_propagate_now(@$ref);
     }
 
-    dbdoall(<<END)
+    db_doall(<<END)
  DELETE FROM dists;
 END
     ;