[Koha-patches] [PATCH] rebuild_zebra.pl - add -y option

Galen Charlton galen.charlton at liblime.com
Fri Apr 18 17:53:38 CEST 2008


rebuild_zebra.pl will now mark all zebraqueue entries
of the affected record type(s) done when run in
normal mode to index all records (as opposed to running
it with -z to just process the zebraqueue).  This prevents
any running zebraqueue_daemon processes from attempting
to reindex the same records, redundantly.

The new -y swtich overrides this new behavior; in other words, if
running rebuild_zebra.pl without -z, you can specify
-y to *not* mark zebraqueue done.
---
 misc/migration_tools/rebuild_zebra.pl |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/misc/migration_tools/rebuild_zebra.pl b/misc/migration_tools/rebuild_zebra.pl
index afa4eaa..132f68c 100755
--- a/misc/migration_tools/rebuild_zebra.pl
+++ b/misc/migration_tools/rebuild_zebra.pl
@@ -28,6 +28,7 @@ my $do_munge;
 my $want_help;
 my $as_xml;
 my $process_zebraqueue;
+my $do_not_clear_zebraqueue;
 my $result = GetOptions(
     'd:s'           => \$directory,
     'reset'         => \$reset,
@@ -40,6 +41,7 @@ my $result = GetOptions(
     'a'             => \$authorities,
     'h|help'        => \$want_help,
 	'x'				=> \$as_xml,
+    'y'             => \$do_not_clear_zebraqueue,
     'z'             => \$process_zebraqueue,
 );
 
@@ -67,6 +69,12 @@ if ($process_zebraqueue and ($skip_export or $reset)) {
     die $msg;
 }
 
+if ($process_zebraqueue and $do_not_clear_zebraqueue) {
+    my $msg = "Cannot specify both -y and -z\n";
+    $msg   .= "Please do '$0 --help' to see usage.\n";
+    die $msg;
+}
+
 if ($noshadow) {
     $noshadow = ' -n ';
 }
@@ -101,14 +109,14 @@ if ($do_munge) {
 $dbh->{AutoCommit} = 0; # don't autocommit - want a consistent view of the zebraqueue table
 
 if ($authorities) {
-    index_records('authority', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml);
+    index_records('authority', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue);
     $dbh->commit(); # commit changes to zebraqueue, if any
 } else {
     print "skipping authorities\n";
 }
 
 if ($biblios) {
-    index_records('biblio', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml);
+    index_records('biblio', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue);
     $dbh->commit(); # commit changes to zebraqueue, if any
 } else {
     print "skipping biblios\n";
@@ -140,7 +148,7 @@ if ($keep_export) {
 }
 
 sub index_records {
-    my ($record_type, $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml) = @_;
+    my ($record_type, $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue) = @_;
 
     my $num_records_exported = 0;
     my $num_records_deleted = 0;
@@ -165,6 +173,10 @@ sub index_records {
             mark_zebraqueue_done($record_type, 'updated');
         } else {
             my $sth = select_all_records($record_type);
+            unless ($do_not_clear_zebraqueue) {
+                mark_zebraqueue_done($record_type, 'deleted');
+                mark_zebraqueue_done($record_type, 'updated');
+            }
             $num_records_exported = export_marc_records($record_type, $sth, "$directory/$record_type", $as_xml, $noxml);
         }
     }
@@ -498,6 +510,13 @@ Parameters:
 							
     -w                      skip shadow indexing for this batch
 
+    -y                      do NOT clear zebraqueue after indexing; normally,
+                            after doing batch indexing, zebraqueue should be
+                            marked done for the affected record type(s) so that
+                            a running zebraqueue_daemon doesn't try to reindex
+                            the same records - specify -y to override this.  
+                            Cannot be used with -z.
+
     -munge-config           Deprecated option to try
                             to fix Zebra config files.
     --help or -h            show this message.
-- 
1.5.5.rc0.16.g02b00




More information about the Koha-patches mailing list