chiark / gitweb /
master-info sanitiser. master-info is now renamed source-info
[ypp-sc-tools.db-test.git] / yarrg / db-idempotent-populate
index ea73f607aa6a1fd6f05c384697400406b26b6b83..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
@@ -43,6 +46,7 @@ parse_info_serverside_ocean($oceanname);
 our $ocean= $oceans{$oceanname};
 
 db_setocean($oceanname);
+db_writer();
 db_connect();
 
 #---------- schema ----------
@@ -102,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;
 }