[Koha-cvs] koha/misc/migration_tools rebuild_zebra.pl [rel_3_0]
paul poulain
paul at koha-fr.org
Wed Dec 6 19:12:22 CET 2006
CVSROOT: /sources/koha
Module name: koha
Branch: rel_3_0
Changes by: paul poulain <tipaul> 06/12/06 18:12:22
Modified files:
misc/migration_tools: rebuild_zebra.pl
Log message:
fix to handle missing biblionumber when it is mapped to a field < 010
(note/remember that missing090.pl is now useless, as rebuild_zebra takes care of it)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/misc/migration_tools/rebuild_zebra.pl?cvsroot=koha&only_with_tag=rel_3_0&r1=1.4.2.10&r2=1.4.2.11
Patches:
Index: rebuild_zebra.pl
===================================================================
RCS file: /sources/koha/koha/misc/migration_tools/rebuild_zebra.pl,v
retrieving revision 1.4.2.10
retrieving revision 1.4.2.11
diff -u -b -r1.4.2.10 -r1.4.2.11
--- rebuild_zebra.pl 6 Dec 2006 17:36:44 -0000 1.4.2.10
+++ rebuild_zebra.pl 6 Dec 2006 18:12:21 -0000 1.4.2.11
@@ -14,7 +14,7 @@
$|=1; # flushes output
# limit for database dumping
-my $limit;# = "LIMIT 10";
+my $limit;# = "LIMIT 100";
my $directory;
my $skip_export;
my $keep_export;
@@ -476,27 +476,34 @@
# print $record;
# check that biblionumber & biblioitemnumber are stored in the MARC record, otherwise, add them & update the biblioitems.marcxml data.
my $record_correct=1;
- unless ($biblionumbertagfield<10?($record->field($biblionumbertagfield)):($record->subfield($biblionumbertagfield,$biblionumbertagsubfield))) {
+ if ($biblionumbertagfield eq '001') {
+ unless ($record->field($biblionumbertagfield)->data()) {
$record_correct=0;
-# warn "INCORRECT BIBLIONUMBER :".$record->as_formatted;
my $field;
# if the field where biblionumber is already exist, just update it, otherwise create it
if ($record->field($biblionumbertagfield)) {
$field = $record->field($biblionumbertagfield);
- if ($biblionumbertagfield <10) {
$field->update($biblionumber);
} else {
- $field->add_subfields($biblionumbertagsubfield => $biblionumber);
- }
- } else {
my $newfield;
- if ($biblionumbertagfield <10) {
$newfield = MARC::Field->new( $biblionumbertagfield, $biblionumber);
+ $record->append_fields($newfield);
+ }
+ }
+ } else {
+ unless ($record->subfield($biblionumbertagfield,$biblionumbertagsubfield)) {
+ $record_correct=0;
+ my $field;
+ # if the field where biblionumber is already exist, just update it, otherwise create it
+ if ($record->field($biblionumbertagfield)) {
+ $field = $record->field($biblionumbertagfield);
+ $field->add_subfields($biblionumbertagsubfield => $biblionumber);
} else {
+ my $newfield;
$newfield = MARC::Field->new( $biblionumbertagfield,'','', $biblionumbertagsubfield => $biblionumber);
- }
$record->append_fields($newfield);
}
+ }
# warn "FIXED BIBLIONUMBER".$record->as_formatted;
}
unless ($record->subfield($biblioitemnumbertagfield,$biblioitemnumbertagsubfield)) {
@@ -524,7 +531,7 @@
}
unless ($record_correct) {
my $update_xml = $dbh->prepare("update biblioitems set marcxml=? where biblionumber=?");
-# warn "UPDATING $biblionumber (missing biblionumber or biblioitemnumber in MARC record : ".$record->as_xml;
+ warn "UPDATING $biblionumber (missing biblionumber or biblioitemnumber in MARC record : ".$record->as_xml;
$update_xml->execute($record->as_xml,$biblionumber);
}
print ".";
More information about the Koha-cvs
mailing list