@@ -, +, @@
updates fail if -x is passed
- On current master, have some records on your db
- Run:
$ sudo koha-shell kohadev
$ cd kohaclone
$ misc/migration_tools/rebuild_zebra.pl -r -b -k -x
- Run
$ less /tmp/NL5ufjUfpp/biblio/exported_records
- Now run:
$ xsltproc \
/etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \
/tmp/NL5ufjUfpp/biblio/exported_records
- Apply the patch
- Run:
$ misc/migration_tools/rebuild_zebra.pl -r -b -k -x
- Take a look at the result file:
$ less /tmp/asdiouqwiue/biblio/exported_records
- Run:
$ xsltproc \
/etc/koha/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl \
/tmp/asdiouqwiue/biblio/exported_records
- Sign off :-D
---
misc/migration_tools/rebuild_zebra.pl | 45 +++++++++++++++++++++++------------
1 file changed, 30 insertions(+), 15 deletions(-)
--- a/misc/migration_tools/rebuild_zebra.pl
+++ a/misc/migration_tools/rebuild_zebra.pl
@@ -168,6 +168,14 @@ my $dbh = C4::Context->dbh;
my ($biblionumbertagfield,$biblionumbertagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
my ($biblioitemnumbertagfield,$biblioitemnumbertagsubfield) = &GetMarcFromKohaField("biblioitems.biblioitemnumber","");
+my $marcxml_open = q{
+
+};
+
+my $marcxml_close = q{
+
+};
+
# Protect again simultaneous update of the zebra index by using a lock file.
# Create our own lock directory if its missing. This shouild be created
# by koha-zebra-ctl.sh or at system installation. If the desired directory
@@ -478,10 +486,10 @@ sub export_marc_records_from_sth {
my $num_exported = 0;
open my $fh, '>:encoding(UTF-8) ', "$directory/exported_records" or die $!;
- if (include_xml_wrapper($as_xml, $record_type)) {
- # include XML declaration and root element
- print {$fh} '';
- }
+
+ print {$fh} $marcxml_open
+ if include_xml_wrapper($as_xml, $record_type);
+
my $i = 0;
my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField("items.itemnumber",'');
while (my ($record_number) = $sth->fetchrow_array) {
@@ -550,7 +558,8 @@ sub export_marc_records_from_sth {
}
}
print "\nRecords exported: $num_exported\n" if ( $verbose_logging );
- print {$fh} '' if (include_xml_wrapper($as_xml, $record_type));
+ print {$fh} $marcxml_close
+ if include_xml_wrapper($as_xml, $record_type);
close $fh;
return $num_exported;
}
@@ -560,10 +569,10 @@ sub export_marc_records_from_list {
my $num_exported = 0;
open my $fh, '>:encoding(UTF-8)', "$directory/exported_records" or die $!;
- if (include_xml_wrapper($as_xml, $record_type)) {
- # include XML declaration and root element
- print {$fh} '';
- }
+
+ print {$fh} $marcxml_open
+ if include_xml_wrapper($as_xml, $record_type);
+
my $i = 0;
# Skip any deleted records. We check for this anyway, but this reduces error spam
@@ -592,7 +601,10 @@ sub export_marc_records_from_list {
}
}
print "\nRecords exported: $num_exported\n" if ( $verbose_logging );
- print {$fh} '' if (include_xml_wrapper($as_xml, $record_type));
+
+ print {$fh} $marcxml_close
+ if include_xml_wrapper($as_xml, $record_type);
+
close $fh;
return $num_exported;
}
@@ -602,10 +614,10 @@ sub generate_deleted_marc_records {
my $records_deleted = {};
open my $fh, '>:encoding(UTF-8)', "$directory/exported_records" or die $!;
- if (include_xml_wrapper($as_xml, $record_type)) {
- # include XML declaration and root element
- print {$fh} '';
- }
+
+ print {$fh} $marcxml_open
+ if include_xml_wrapper($as_xml, $record_type);
+
my $i = 0;
foreach my $record_number (map { $_->{biblio_auth_number} } @$entries ) {
print "\r$i" unless ($i++ %100 or !$verbose_logging);
@@ -633,7 +645,10 @@ sub generate_deleted_marc_records {
$records_deleted->{$record_number} = 1;
}
print "\nRecords exported: $i\n" if ( $verbose_logging );
- print {$fh} '' if (include_xml_wrapper($as_xml, $record_type));
+
+ print {$fh} $marcxml_close
+ if include_xml_wrapper($as_xml, $record_type);
+
close $fh;
return $records_deleted;
--