Bug 12720 - Turn off Authority logging when running "bulkmarcimport.pl"
authorDavid Cook <dcook@prosentient.com.au>
Wed, 6 Aug 2014 05:25:17 +0000 (15:25 +1000)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Sun, 24 Aug 2014 15:49:49 +0000 (12:49 -0300)
This patch turns off the AuthoritiesLogging syspref when running the
bulkmarcimport.pl script.

It also temporarily disables the syspref caching which will have
been making the CataloguingLogging handling ineffectual. (That is,
updating the CataloguingLogging syspref in the script wouldn't
have an effect as the original cached value would be used anyway.)

_TEST PLAN_

0) Turn on "AuthoritiesLogging" syspref
1) Load an authority record using bulkmarcimport.pl
2) Note a new Authorities entry in action_logs

3) Apply the patch

4) Repeat Step 1
5) Note that no new entry is made in action_logs

(Bonus points: Do the same thing with CataloguingLogging and a
bibliographic record.)

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Tested with biblio and auth imports.
Work as described, no koha-qa errors.

Note: If you begin to load a big file and get impatient and hit ^C,
seems that current syspref value is lost...

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes tests and QA script.
Patch copies what was already done for the CatalougingLog, no problems found.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

misc/migration_tools/bulkmarcimport.pl

index 4a47de0..fc5ab84 100755 (executable)
@@ -121,11 +121,17 @@ if ((not defined $sourcesubfield) && (not defined $sourcetag)){
   $sourcesubfield="a";
 }
 
-# save the CataloguingLog property : we don't want to log a bulkmarcimport. It will slow the import & 
+#Disable the syspref cache or else the following UPDATE statements will have no effect
+C4::Context->disable_syspref_cache();
+
+# save the CataloguingLog and AuthoritiesLog properties : we don't want to log a bulkmarcimport. It will slow the import &
 # will create problems in the action_logs table, that can't handle more than 1 entry per second per user.
 my $CataloguingLog = C4::Context->preference('CataloguingLog');
 $dbh->do("UPDATE systempreferences SET value=0 WHERE variable='CataloguingLog'");
 
+my $AuthoritiesLog = C4::Context->preference('AuthoritiesLog');
+$dbh->do("UPDATE systempreferences SET value=0 WHERE variable='AuthoritiesLog'");
+
 if ($fk_off) {
        $dbh->do("SET FOREIGN_KEY_CHECKS = 0");
 }
@@ -496,6 +502,8 @@ if ($fk_off) {
 
 # restore CataloguingLog
 $dbh->do("UPDATE systempreferences SET value=$CataloguingLog WHERE variable='CataloguingLog'");
+# restore AuthoritiesLog
+$dbh->do("UPDATE systempreferences SET value=$AuthoritiesLog WHERE variable='AuthoritiesLog'");
 
 my $timeneeded = gettimeofday - $starttime;
 print "\n$i MARC records done in $timeneeded seconds\n";