Back to IR-367 *sigh*
authorMike Taylor <mike@indexdata.com>
Wed, 17 Dec 2014 15:38:23 +0000 (15:38 +0000)
committerMike Taylor <mike@indexdata.com>
Wed, 17 Dec 2014 15:38:23 +0000 (15:38 +0000)
Extend reindex.pl so that if it's asked to set UDB in a record with no
databaseInfo, it makes that section. This can now be used to fix up
the 35 records in the master IRSpy database that still hgave no UDBs.

bin/reindex.pl

index 54dfa62..9328c72 100755 (executable)
@@ -36,14 +36,17 @@ foreach my $i (1..$n) {
     print " $i/$n (", int($i*100/$n), "%)\n" if $i % 50 == 0;
     my $rec = $rs->record($i-1);
     my $xml = $rec->render();
-    if ($xml !~ /<(e:)?databaseInfo.*?>/) {
-       # There is an undeletable phantom record: ignore it
-       next;
-    }
 
     if ($setUdb) {
-       my $udb = qq[<i:udb xmlns:i="http://indexdata.com/irspy/1.0">irspy-$i</i:udb>];
-       $xml =~ s/<(e:)?databaseInfo.*?>/$&$udb/;
+       my $udb;
+       if ($xml !~ /<(e:)?databaseInfo.*?>/) {
+           $udb = qq[<i:udb xmlns:i="http://indexdata.com/irspy/1.0">irspy-a$i</i:udb>];
+           $xml =~ s/\/serverInfo>/$&<databaseInfo>$udb<\/databaseInfo>/;
+           print "x";
+       } else {
+           $udb = qq[<i:udb xmlns:i="http://indexdata.com/irspy/1.0">irspy-$i</i:udb>];
+           $xml =~ s/<(e:)?databaseInfo.*?>/$&$udb/;
+       }
     }
 
     update($conn, $xml);