Upgrade script :

the koha2marc.pl copies the old DB into the new MARC one. This script must be executed when migrating from 1.2.x to 2.0.x.
This commit is contained in:
tipaul 2003-10-20 15:42:43 +00:00
parent 539d1fa7ca
commit b8fca2a019
3 changed files with 59 additions and 0 deletions

View file

@ -39,3 +39,4 @@ while ( my $record = $batch->next() ) {
print "\n".$record->as_formatted() if ($i eq $number || $number eq 0);
$i++;
}
print "\n==================\n$i record parsed\n";

View file

@ -491,6 +491,18 @@ In the OPAC VirtualHost section you should have:
You may also need to uncomment a "LoadModules env_module ... " line and restart
Apache.
If you're upgrading from 1.2.x version of Koha note that the MARC DB is NOT populated.
To populate it :
* launch Koha
* Go to Parameters >> Marc structure option and Koha-MARC links option.
* Modify default MARC structure to fit your needs.
* open a console
* type:
cd /path/to/koha/misc
export PERL5LIB=/path/to/koha
./koha2marc.pl
the old DB is "copied" in the new MARC one.
Koha 2.0.0 is ready :-)
Please report any problems you encounter through http://bugs.koha.org/
|;

46
misc/koha2marc.pl Executable file
View file

@ -0,0 +1,46 @@
#!/usr/bin/perl
use C4::Context;
use CGI;
use DBI;
#use strict;
use C4::Biblio;
use C4::Output;
use Getopt::Long;
my ( $confirm,$delete);
GetOptions(
'c' => \$confirm,
'd' => \$delete,
);
my $dbh = C4::Context->dbh;
if ($delete) {
print "deleting MARC tables\n";
$dbh->do("delete from marc_biblio");
$dbh->do("delete from marc_subfield_table");
$dbh->do("delete from marc_blob_subfield");
$dbh->do("delete from marc_word");
}
my $userid=$ENV{'REMOTE_USER'};
my $sthbiblioitem = $dbh->prepare("select biblioitemnumber from biblioitems where biblionumber=?");
my $sthitems = $dbh->prepare("select itemnumber from items where biblionumber=?");
my $sth=$dbh->prepare("select biblionumber from biblio");
$sth->execute;
my $env;
$env->{'marconly'}=1;
my ($MARC, $biblionumber,$biblioitemnumber,$bibid);
while (($biblionumber) = $sth->fetchrow) {
print "Processing $biblionumber\n";
$sthbiblioitem->execute($biblionumber);
($biblioitemnumber) = $sthbiblioitem->fetchrow;
$MARC = &MARCkoha2marcBiblio($dbh,$biblionumber,$biblioitemnumber);
$bibid = &MARCaddbiblio($dbh,$MARC,$biblionumber);
# now, search items, and add them...
$sthitems->execute($biblionumber);
while (($itemnumber) = $sthitems->fetchrow) {
$MARC = &MARCkoha2marcItem($dbh,$biblionumber,$itemnumber);
&MARCadditem($dbh,$MARC,$biblionumber);
}
}