diff --git a/updater/updatedatabase b/updater/updatedatabase new file mode 100755 index 0000000000..ecd7669dcc --- /dev/null +++ b/updater/updatedatabase @@ -0,0 +1,66 @@ +#!/usr/bin/perl + +# This script will check for required updates to the database. Would also be a +# good idea to offer to do a backup at this time... + + +use C4::Database; +use C4::Catalogue; +use DBI; +use C4::Acquisitions; +use C4::Output; +my $dbh=C4Connect; + +my %tables; +my %types; + +my $sth=$dbh->prepare("show tables"); +$sth->execute; +while (my ($table) = $sth->fetchrow) { + $tables{$table}=1; + print "Table: $table\n"; +} + + + +# Add tables required by Z-3950 scripts + +unless ($tables{'z3950queue') { + my $sti=$dbh->prepare("create table z3950queue (id int auto_increment primary key, term text, type char(10), startdate int, enddate int, done smallint, results longblob, numercords int, servers text, identifier char(30))"); + $sti->execute; +} + +unless ($tables{'z3950results'}) { + my $sti=$dbh->prepare("create table z3950results (id int auto_increment primary key, queryid int, server char(255), startdate int, enddate int, results longblob, numrecords int, numdownloaded int, highestseen int, active smallint)"); + $sti->execute; +} +unless ($tables{'z3950servers'}) { + my $sti=$dbh->prepare("create table z3950servers (host char(255), port int, db char(255), userid char(255), password char(255), name text, id int, checked smallint, rank int)"); + $sti->execute; + $sti=$dbh->prepare("insert into z3950servers values ('z3950.loc.gov', 7090, 'voyager', '', '', 'Library of Congress', 1, 1, 1)"); + $sti->execute; +} + + + +# Get list of columns from biblioitems table + +my $sth=$dbh->prepare("show columns from biblioitems"); +$sth->execute; +while (my ($column, $type, $null, $key, $default, $extra) = $sth->fetchrow) { + $types{$column}=$type; +} +unless ($types{'lccn'}) { + # Add LCCN field to biblioitems db + my $sti=$dbh->prepare("alter table biblioitems add column lccn char(25)"); + $sti->execute; +} +unless ($types{'marc'}) { + # Add MARC field to biblioitems db (not used anymore) + my $sti=$dbh->prepare("alter table biblioitems add column marc text"); + $sti->execute; +} + + +$sth->finish; +$dbh->disconnect;