chiark / gitweb /
master-info sanitiser. master-info is now renamed source-info
[ypp-sc-tools.db-test.git] / yarrg / db-idempotent-populate
index b7743ed9cb1ff3f78ef9b6be379d4635ec467e1e..b44d45dd25cc7d63c435059c521bfc0b84a36800 100755 (executable)
@@ -1,5 +1,8 @@
 #!/usr/bin/perl -w
 #
+# Normally run from
+#  update-master-info
+#
 # usage: ./db-idempotent-populate <Oceanname>
 #  creates or updates OCEAN-Oceanname.db
 #  from master-master.txt
@@ -38,10 +41,12 @@ my ($oceanname) = @ARGV;
 
 #---------- setup ----------
 
-parse_masters_ocean($oceanname);
+parse_info_serverside();
+parse_info_serverside_ocean($oceanname);
 our $ocean= $oceans{$oceanname};
 
 db_setocean($oceanname);
+db_writer();
 db_connect();
 
 #---------- schema ----------
@@ -101,12 +106,28 @@ $dbh->commit;
 #---------- commodity list ----------
 
 {
-    my $sth= $dbh->prepare(<<'END')
- INSERT OR IGNORE INTO commods (commodname) VALUES (?);
+    my $insert= $dbh->prepare(<<'END')
+ INSERT OR IGNORE INTO commods
+     (unitmass,
+      unitvolume,
+      commodname)
+     VALUES (?,?,?);
+END
+    ;
+    my $update= $dbh->prepare(<<'END')
+ UPDATE commods
+     SET unitmass = ?,
+         unitvolume = ?
+     WHERE commodname = ?
 END
     ;
     foreach my $commod (sort keys %commods) {
-       $sth->execute($commod);
+       my $c= $commods{$commod};
+        die "no mass for $commod" unless defined $c->{Mass};
+        die "no colume for $commod" unless defined $c->{Volume};
+       my @qa= ($c->{Mass}, $c->{Volume}, $commod);
+       $insert->execute(@qa);
+       $update->execute(@qa);
     }
     $dbh->commit;
 }