[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha/updater updatedatabase [rel_3_0]
From: |
paul poulain |
Subject: |
[Koha-cvs] koha/updater updatedatabase [rel_3_0] |
Date: |
Wed, 24 Jan 2007 13:57:26 +0000 |
CVSROOT: /sources/koha
Module name: koha
Branch: rel_3_0
Changes by: paul poulain <tipaul> 07/01/24 13:57:26
Modified files:
updater : updatedatabase
Log message:
- setting supplierid to auto_increment (HDL : could you check that is
works, i'm not 100% sure)
- removing 22 -> 30 marc_subfield_table -> marcxml stuff, it's now in
misc/migration_tools/22_to_30/
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/updater/updatedatabase?cvsroot=koha&only_with_tag=rel_3_0&r1=1.157.2.51&r2=1.157.2.52
Patches:
Index: updatedatabase
===================================================================
RCS file: /sources/koha/koha/updater/updatedatabase,v
retrieving revision 1.157.2.51
retrieving revision 1.157.2.52
diff -u -b -r1.157.2.51 -r1.157.2.52
--- updatedatabase 18 Jan 2007 09:58:45 -0000 1.157.2.51
+++ updatedatabase 24 Jan 2007 13:57:26 -0000 1.157.2.52
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# $Id: updatedatabase,v 1.157.2.51 2007/01/18 09:58:45 tipaul Exp $
+# $Id: updatedatabase,v 1.157.2.52 2007/01/24 13:57:26 tipaul Exp $
# Database Updater
# This script checks for required updates to the database.
@@ -559,6 +559,14 @@
],
aqbooksellers => [
{
+ field => 'id',
+ type => 'int(11)',
+ null => 'NOT NULL',
+ key => '',
+ default => '',
+ extra => 'auto_increment',
+ },
+ {
field => 'listprice',
type => 'varchar(10)',
null => 'NULL',
@@ -919,6 +927,7 @@
{
field => 'itemtype',
type => 'varchar(10)',
+ default => '',
null => 'NOT NULL',
key => 'PRI',
extra => 'UNIQUE',
@@ -1905,39 +1914,6 @@
print "\rdone\n";
}
-#
-# moving MARC data from marc_subfield_table to biblioitems.marc
-#
-$sth = $dbh->prepare("show columns from biblioitems");
-$sth->execute();
-my $marcdone=0;
-while ( ( $column, $type, $null, $key, $default, $extra ) = $sth->fetchrow ){
- $marcdone=1 if ($type eq 'longtext' && $column eq 'marcxml') ;
-}
-#unless ($marcdone) {
-unless (1) { # to disable this block just to test.
- print "moving MARC record to biblioitems table\n";
- # changing marc field type
- $dbh->do('ALTER TABLE `biblioitems` CHANGE `marc` `marc` BLOB NULL DEFAULT
NULL ');
- # adding marc xml, just for convenience
- $dbh->do('ALTER TABLE `biblioitems` ADD `marcxml` LONGTEXT CHARACTER SET
utf8 COLLATE utf8_general_ci NOT NULL ');
- # moving data from marc_subfield_value to biblio
- $sth = $dbh->prepare('select bibid,biblionumber from marc_biblio');
- $sth->execute;
- my $sth_update = $dbh->prepare('update biblioitems set marc=?, marcxml=?
where biblionumber=?');
- my $totaldone=0;
- while (my ($bibid,$biblionumber) = $sth->fetchrow) {
- my $record = MARCgetbiblio($dbh,$bibid);
- #Force UTF-8 in record leader
-# $record->encoding('UTF-8');
-
$sth_update->execute($record->as_usmarc(),$record->as_xml_record(),$biblionumber);
- $totaldone++;
- print "\r$totaldone / $totaltodo" unless ($totaldone % 100);
- }
- print "\rdone\n";
-#}
-}
-
# at last, remove useless fields
foreach $table ( keys %uselessfields ) {
my @fields = split /,/,$uselessfields{$table};
@@ -1967,179 +1943,15 @@
$sth=$dbh->prepare("ALTER TABLE `aqbookfund` DROP PRIMARY KEY , ADD PRIMARY
KEY ( `bookfundid` , `branchcode` ) ;");
$sth->execute;
-
-
-
-
$sth->finish;
-#
-# those 2 subs are a copy of Biblio.pm, version 2.2.4
-# they are useful only once, for moving from 2.2 to 3.0
-# the MARCgetbiblio & MARCgetitem subs in Biblio.pm
-# are still here, but uses other tables
-# (the ones that are filled by updatedatabase !)
-#
-
-sub MARCgetbiblio {
-
- # Returns MARC::Record of the biblio passed in parameter.
- my ( $dbh, $bibid ) = @_;
- my $record = MARC::Record->new();
-# warn "". $bidid;
-
- my $sth =
- $dbh->prepare(
-"select
bibid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue,valuebloblink
- from marc_subfield_table
- where bibid=? order by tag,tagorder,subfieldorder
- "
- );
- my $sth2 =
- $dbh->prepare(
- "select subfieldvalue from marc_blob_subfield where blobidlink=?");
- $sth->execute($bibid);
- my $prevtagorder = 1;
- my $prevtag = 'XXX';
- my $previndicator;
- my $field; # for >=10 tags
- my $prevvalue; # for <10 tags
- while ( my $row = $sth->fetchrow_hashref ) {
-
- if ( $row->{'valuebloblink'} ) { #---- search blob if there is one
- $sth2->execute( $row->{'valuebloblink'} );
- my $row2 = $sth2->fetchrow_hashref;
- $sth2->finish;
- $row->{'subfieldvalue'} = $row2->{'subfieldvalue'};
- }
- if ( $row->{tagorder} ne $prevtagorder || $row->{tag} ne $prevtag ) {
- $previndicator .= " ";
- if ( $prevtag < 10 ) {
- if ($prevtag ne '000') {
- $record->add_fields( ( sprintf "%03s", $prevtag ),
$prevvalue ) unless $prevtag eq "XXX"; # ignore the 1st loop
- } else {
- $record->leader(sprintf("%24s",$prevvalue));
- }
- }
- else {
- $record->add_fields($field) unless $prevtag eq "XXX";
- }
- undef $field;
- $prevtagorder = $row->{tagorder};
- $prevtag = $row->{tag};
- $previndicator = $row->{tag_indicator};
- if ( $row->{tag} < 10 ) {
- $prevvalue = $row->{subfieldvalue};
- }
- else {
- $field = MARC::Field->new(
- ( sprintf "%03s", $prevtag ),
- substr( $row->{tag_indicator} . ' ', 0, 1 ),
- substr( $row->{tag_indicator} . ' ', 1, 1 ),
- $row->{'subfieldcode'},
- $row->{'subfieldvalue'}
- );
- }
- }
- else {
- if ( $row->{tag} < 10 ) {
- $record->add_fields( ( sprintf "%03s", $row->{tag} ),
- $row->{'subfieldvalue'} );
- }
- else {
- $field->add_subfields( $row->{'subfieldcode'},
- $row->{'subfieldvalue'} );
- }
- $prevtag = $row->{tag};
- $previndicator = $row->{tag_indicator};
- }
- }
-
- # the last has not been included inside the loop... do it now !
- if ( $prevtag ne "XXX" )
- { # check that we have found something. Otherwise, prevtag is still XXX
and we
- # must return an empty record, not make MARC::Record fail because we
try to
- # create a record with XXX as field :-(
- if ( $prevtag < 10 ) {
- $record->add_fields( $prevtag, $prevvalue );
- }
- else {
-
- # my $field = MARC::Field->new( $prevtag, "", "",
%subfieldlist);
- $record->add_fields($field);
- }
- }
- return $record;
-}
-
-sub MARCgetitem {
-
- # Returns MARC::Record of the biblio passed in parameter.
- my ( $dbh, $bibid, $itemnumber ) = @_;
- my $record = MARC::Record->new();
-
- # search MARC tagorder
- my $sth2 =
- $dbh->prepare(
-"select tagorder from marc_subfield_table,marc_subfield_structure where
marc_subfield_table.tag=marc_subfield_structure.tagfield and
marc_subfield_table.subfieldcode=marc_subfield_structure.tagsubfield and
bibid=? and kohafield='items.itemnumber' and subfieldvalue=?"
- );
- $sth2->execute( $bibid, $itemnumber );
- my ($tagorder) = $sth2->fetchrow_array();
-
- #---- TODO : the leader is missing
- my $sth =
- $dbh->prepare(
-"select
bibid,subfieldid,tag,tagorder,tag_indicator,subfieldcode,subfieldorder,subfieldvalue,valuebloblink
- from marc_subfield_table
- where bibid=? and tagorder=? order by
subfieldcode,subfieldorder
- "
- );
- $sth2 =
- $dbh->prepare(
- "select subfieldvalue from marc_blob_subfield where blobidlink=?");
- $sth->execute( $bibid, $tagorder );
- while ( my $row = $sth->fetchrow_hashref ) {
- if ( $row->{'valuebloblink'} ) { #---- search blob if there is one
- $sth2->execute( $row->{'valuebloblink'} );
- my $row2 = $sth2->fetchrow_hashref;
- $sth2->finish;
- $row->{'subfieldvalue'} = $row2->{'subfieldvalue'};
- }
- if ( $record->field( $row->{'tag'} ) ) {
- my $field;
-
-#--- this test must stay as this, because of strange behaviour of mySQL/Perl
DBI with char var containing a number...
- #--- sometimes, eliminates 0 at beginning, sometimes no ;-\\\
- if ( length( $row->{'tag'} ) < 3 ) {
- $row->{'tag'} = "0" . $row->{'tag'};
- }
- $field = $record->field( $row->{'tag'} );
- if ($field) {
- my $x =
- $field->add_subfields( $row->{'subfieldcode'},
- $row->{'subfieldvalue'} );
- $record->delete_field($field);
- $record->add_fields($field);
- }
- }
- else {
- if ( length( $row->{'tag'} ) < 3 ) {
- $row->{'tag'} = "0" . $row->{'tag'};
- }
- my $temp =
- MARC::Field->new( $row->{'tag'}, " ", " ",
- $row->{'subfieldcode'} => $row->{'subfieldvalue'} );
- $record->add_fields($temp);
- }
-
- }
- return $record;
-}
-
-
exit;
# $Log: updatedatabase,v $
+# Revision 1.157.2.52 2007/01/24 13:57:26 tipaul
+# - setting supplierid to auto_increment (HDL : could you check that is works,
i'm not 100% sure)
+# - removing 22 -> 30 marc_subfield_table -> marcxml stuff, it's now in
misc/migration_tools/22_to_30/
+#
# Revision 1.157.2.51 2007/01/18 09:58:45 tipaul
# defaulting NOT NULL fields (to '')
#
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], Antoine Farnault, 2007/01/09
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], Antoine Farnault, 2007/01/10
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], Antoine Farnault, 2007/01/10
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], Antoine Farnault, 2007/01/12
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], paul poulain, 2007/01/18
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], paul poulain, 2007/01/18
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], paul poulain, 2007/01/18
- [Koha-cvs] koha/updater updatedatabase [rel_3_0],
paul poulain <=
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], Antoine Farnault, 2007/01/29
- [Koha-cvs] koha/updater updatedatabase [rel_3_0], paul poulain, 2007/01/30