Bug 11484: Add option to cleanup_database.pl to purge Z39.50 search records from...
authorKyle M Hall <kyle@bywatersolutions.com>
Mon, 6 Jan 2014 18:46:02 +0000 (13:46 -0500)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 17 Apr 2014 15:28:29 +0000 (15:28 +0000)
It would be good to be able to specifically target import records from
Z39.50 for cleanup.

Test Plan:
1) Apply this patch
2) Import one or more batch record sets into Koha
3) Perform some Z39.50 searches
4) Run this command: misc/cronjobs/cleanup_database.pl -v --z3950
5) Verify that only Z39.50 records were deleted

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
misc/cronjobs/cleanup_database.pl

index c190a80..27d92c2 100755 (executable)
@@ -58,6 +58,8 @@ Usage: $0 [-h|--help] [--sessions] [--sessdays DAYS] [-v|--verbose] [--zebraqueu
    --merged           purged completed entries from need_merge_authorities.
    --import DAYS      purge records from import tables older than DAYS days.
                       Defaults to 60 days if no days specified.
+   --z3950            purge records from import tables that are the result
+                      of z39.50 searches
    --logs DAYS        purge entries from action_logs older than DAYS days.
                       Defaults to 180 days if no days specified.
    --searchhistory DAYS  purge entries from search_history older than DAYS days.
@@ -66,7 +68,11 @@ USAGE
     exit $_[0];
 }
 
-my ( $help, $sessions, $sess_days, $verbose, $zebraqueue_days, $mail, $purge_merged, $pImport, $pLogs, $pSearchhistory);
+my (
+    $help,            $sessions,       $sess_days,    $verbose,
+    $zebraqueue_days, $mail,           $purge_merged, $pImport,
+    $pLogs,           $pSearchhistory, $pZ3950
+);
 
 GetOptions(
     'h|help'       => \$help,
@@ -77,6 +83,7 @@ GetOptions(
     'zebraqueue:i' => \$zebraqueue_days,
     'merged'       => \$purge_merged,
     'import:i'     => \$pImport,
+    'z3950'        => \$pZ3950,
     'logs:i'       => \$pLogs,
     'searchhistory:i' => \$pSearchhistory,
 ) || usage(1);
@@ -94,7 +101,15 @@ if ($help) {
     usage(0);
 }
 
-if ( !( $sessions || $zebraqueue_days || $mail || $purge_merged || $pImport || $pLogs || $pSearchhistory ) ) {
+unless ( $sessions
+    || $zebraqueue_days
+    || $mail
+    || $purge_merged
+    || $pImport
+    || $pLogs
+    || $pSearchhistory
+    || $pZ3950 )
+{
     print "You did not specify any cleanup work for the script to do.\n\n";
     usage(1);
 }
@@ -172,6 +187,12 @@ if($pImport) {
     print "Done with purging import tables.\n" if $verbose;
 }
 
+if($pZ3950) {
+    print "Purging z39.50 records from import tables.\n" if $verbose;
+    PurgeZ3950();
+    print "Done with purging z39.50 records from import tables.\n" if $verbose;
+}
+
 if($pLogs) {
     print "Purging records from action_logs.\n" if $verbose;
     $sth = $dbh->prepare("DELETE FROM action_logs WHERE timestamp < date_sub(curdate(), interval ? DAY)");
@@ -232,3 +253,11 @@ sub PurgeImportTables {
  ba.upload_timestamp < date_sub(curdate(), interval ? DAY)");
     $sth->execute($pImport) or die $dbh->errstr;
 }
+
+
+sub PurgeZ3950 {
+    $sth = $dbh->prepare(q{
+        DELETE FROM import_batches WHERE batch_type = 'z3950'
+    });
+    $sth->execute() or die $dbh->errstr;
+}