From 22aa16e87f996b9a046f7b8ed3e495ebd49194fd Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 1 May 2008 11:41:33 -0500 Subject: [PATCH] kohabug 2076 - remove three tables (DB rev 077) Removed the categorytable, mediatypetable, and subcategorytable tables. These three tables appear to be from an incomplete patch from pre-git that defined these tables to implement additional search limits, and are not present in the 2.2.9 package. In 3.0, these tables did nothing - the only code that referred to them are incomplete admin editors that lack HTML templates and are not referred to anywhere. The updatedatabase.pl logic to remove these tables is conservative; the tables are dropped only if they exist and are all empty. Effectively, this means that they'll be dropped if you've been running a fresh install of 3.0 from git or the alphas or betas; if you've upgraded your database from 2.2.9, these tables likely weren't in your database to begin with. Signed-off-by: Joshua Ferraro --- INSTALL.fedora7 | 3 - admin/itemtypecategory.pl | 196 ----------------------- admin/itemtypesubcategory.pl | 196 ----------------------- admin/mediatype.pl | 210 ------------------------- installer/data/Pg/kohastructure.sql | 39 ----- installer/data/mysql/kohastructure.sql | 36 ----- installer/data/mysql/updatedatabase.pl | 52 +++++- kohaversion.pl | 2 +- t/lib/KohaTest.pm | 6 - 9 files changed, 46 insertions(+), 694 deletions(-) delete mode 100755 admin/itemtypecategory.pl delete mode 100755 admin/itemtypesubcategory.pl delete mode 100755 admin/mediatype.pl diff --git a/INSTALL.fedora7 b/INSTALL.fedora7 index 362b7eab62..53deb1648a 100644 --- a/INSTALL.fedora7 +++ b/INSTALL.fedora7 @@ -1126,7 +1126,6 @@ MySQL> show tables; | branchtransfers | | browser | | categories | -| categorytable | | cities | | class_sort_rules | | class_sources | @@ -1162,7 +1161,6 @@ MySQL> show tables; | matchpoint_component_norms | | matchpoint_components | | matchpoints | -| mediatypetable | | notifys | | nozebra | | opac_news | @@ -1182,7 +1180,6 @@ MySQL> show tables; | special_holidays | | statistics | | stopwords | -| subcategorytable | | subscription | | subscriptionhistory | | subscriptionroutinglist | diff --git a/admin/itemtypecategory.pl b/admin/itemtypecategory.pl deleted file mode 100755 index 6f8b41ed53..0000000000 --- a/admin/itemtypecategory.pl +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/perl -# NOTE: 4-character tabs - -#script to administer the itemtype categories table -#modified from the itemtype script written 20/02/2002 by paul.poulain@free.fr -#This script written by waylon@robertson.net.nz at 2nd June, 2005 -# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html) - -# ALGO : -# this script use an $op to know what to do. -# if $op is empty or none of the above values, -# - the default screen is build (with all records, or filtered datas). -# - the user can clic on add, modify or delete record. -# if $op=add_form -# - if primkey exists, this is a modification,so we read the $primkey record -# - builds the add/modify form -# if $op=add_validate -# - the user has just send datas, so we create/modify the record -# if $op=delete_form -# - we show the record having primkey=$primkey and ask for deletion validation form -# if $op=delete_confirm -# - we delete the record having primkey=$primkey - - -# Copyright 2000-2002 Katipo Communications -# -# This file is part of Koha. -# -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - -use strict; -use CGI; -use C4::Context; -use C4::Auth; -use C4::Output; - - -sub StringSearch { - my ($searchstring,$type)=@_; - my $dbh = C4::Context->dbh; - $searchstring=~ s/\'/\\\'/g; - my @data=split(' ',$searchstring); - my $count=@data; - my $sth=$dbh->prepare("Select * from categorytable where (description like ?) order by categorycode"); - $sth->execute("$data[0]%"); - my @results; - while (my $data=$sth->fetchrow_hashref){ - push(@results,$data); - } - # $sth->execute; - $sth->finish; - return (scalar(@results),\@results); -} - -my $input = new CGI; -my $searchfield=$input->param('description'); -my $offset=$input->param('offset'); -my $script_name="/cgi-bin/koha/admin/itemtypecategory.pl"; -my $categorycode=$input->param('categorycode'); -my $pagesize=20; -my $op = $input->param('op'); -$searchfield=~ s/\,//g; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "admin/itemtypecategory.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 1}, - debug => 1, - }); - -if ($op) { -$template->param(script_name => $script_name, - $op => 1); # we show only the TMPL_VAR names $op -} else { -$template->param(script_name => $script_name, - else => 1); # we show only the TMPL_VAR names $op -} -################## ADD_FORM ################################## -# called by default. Used to create form to add or modify a record -if ($op eq 'add_form') { - #start the page and read in includes - #---- if primkey exists, it's a modify action, so read values to modify... - my $data; - my $itemtypes; - my $dbh = C4::Context->dbh; - my @itemtypesselected; - if ($categorycode) { - my $sth=$dbh->prepare("select categorycode,description,itemtypecodes from categorytable where categorycode=?"); - $sth->execute($categorycode); - $data=$sth->fetchrow_hashref; - $sth->finish; - @itemtypesselected = split ( /\|/, $data->{'itemtypecodes'} ); - } - - my $sth=$dbh->prepare("select description,itemtype from itemtypes order by description"); - $sth->execute; - while (my ($description,$itemtype) = $sth->fetchrow) { - $itemtypes .=''; - } - - $template->param(categorycode => $categorycode, - description => $data->{'description'}, - itemtypes => $itemtypes - ); -; - # END $OP eq ADD_FORM -################## ADD_VALIDATE ################################## -# called by add_form, used to insert/modify data in DB -} elsif ($op eq 'add_validate') { - my $dbh = C4::Context->dbh; - my @itemtypecodesarray = $input->param('itemtypecodes'); - my $itemtypecodes=join('|',@itemtypecodesarray); - my $sth=$dbh->prepare("replace categorytable (categorycode,description,itemtypecodes) values (?,?,?)"); - $sth->execute( - $input->param('categorycode'),$input->param('description'), - $itemtypecodes - ); - $sth->finish; - print "Content-Type: text/html\n\n"; - exit; - # END $OP eq ADD_VALIDATE -################## DELETE_CONFIRM ################################## -# called by default form, used to confirm deletion of data in DB -} elsif ($op eq 'delete_confirm') { - #start the page and read in includes - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("select categorycode,description,itemtypecodes from categorytable where categorycode=?"); - $sth->execute($categorycode); - my $data=$sth->fetchrow_hashref; - $sth->finish; - - $template->param(categorycode => $categorycode, - description => $data->{'description'}, - itemtypecodes => $data->{'itemtypecodes'}); - # END $OP eq DELETE_CONFIRM -################## DELETE_CONFIRMED ################################## -# called by delete_confirm, used to effectively confirm deletion of data in DB -} elsif ($op eq 'delete_confirmed') { - #start the page and read in includes - my $dbh = C4::Context->dbh; - my $itemtype=uc($input->param('categorycode')); - my $sth=$dbh->prepare("delete from categorytable where categorycode=?"); - $sth->execute($itemtype); - $sth->finish; - print "Content-Type: text/html\n\n"; - exit; - # END $OP eq DELETE_CONFIRMED -################## DEFAULT ################################## -} else { # DEFAULT - my ($count,$results)=StringSearch($searchfield,'web'); - my $toggle=0; - my @loop_data; - for (my $i=$offset; $i < ($offset+$pagesize<$count?$offset+$pagesize:$count); $i++){ - my %row_data; - if ($toggle eq 0){ - $toggle=1; - } else { - $toggle=0; - } - $row_data{toggle} = $toggle; - $row_data{categorycode} = $results->[$i]{categorycode}; - $row_data{description} = $results->[$i]{description}; - $row_data{itemtypecodes} = $results->[$i]{itemtypecodes}; - push(@loop_data, \%row_data); - } - $template->param(loop => \@loop_data); - if ($offset>0) { - my $prevpage = $offset-$pagesize; - $template->param(previous => "$script_name?offset=".$prevpage); - } - if ($offset+$pagesize<$count) { - my $nextpage =$offset+$pagesize; - $template->param(next => "$script_name?offset=".$nextpage); - } -} #---- END $OP eq DEFAULT -output_html_with_http_headers $input, $cookie, $template->output; - -# Local Variables: -# tab-width: 4 -# End: diff --git a/admin/itemtypesubcategory.pl b/admin/itemtypesubcategory.pl deleted file mode 100755 index bb78d715da..0000000000 --- a/admin/itemtypesubcategory.pl +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/perl -# NOTE: 4-character tabs - -#script to administer the itemtype subcategories table -#modified from the itemtype script written 20/02/2002 by paul.poulain@free.fr -#This script written by waylon@robertson.net.nz at 2nd June, 2005 -# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html) - -# ALGO : -# this script use an $op to know what to do. -# if $op is empty or none of the above values, -# - the default screen is build (with all records, or filtered datas). -# - the user can clic on add, modify or delete record. -# if $op=add_form -# - if primkey exists, this is a modification,so we read the $primkey record -# - builds the add/modify form -# if $op=add_validate -# - the user has just send datas, so we create/modify the record -# if $op=delete_form -# - we show the record having primkey=$primkey and ask for deletion validation form -# if $op=delete_confirm -# - we delete the record having primkey=$primkey - - -# Copyright 2000-2002 Katipo Communications -# -# This file is part of Koha. -# -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - -use strict; -use CGI; -use C4::Context; -use C4::Auth; -use C4::Output; - - -sub StringSearch { - my ($searchstring,$type)=@_; - my $dbh = C4::Context->dbh; - $searchstring=~ s/\'/\\\'/g; - my @data=split(' ',$searchstring); - my $count=@data; - my $sth=$dbh->prepare("Select * from subcategorytable where (description like ?) order by subcategorycode"); - $sth->execute("$data[0]%"); - my @results; - while (my $data=$sth->fetchrow_hashref){ - push(@results,$data); - } - # $sth->execute; - $sth->finish; - return (scalar(@results),\@results); -} - -my $input = new CGI; -my $searchfield=$input->param('description'); -my $offset=$input->param('offset'); -my $script_name="/cgi-bin/koha/admin/itemtypesubcategory.pl"; -my $subcategorycode=$input->param('subcategorycode'); -my $pagesize=20; -my $op = $input->param('op'); -$searchfield=~ s/\,//g; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "admin/itemtypesubcategory.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 1}, - debug => 1, - }); - -if ($op) { -$template->param(script_name => $script_name, - $op => 1); # we show only the TMPL_VAR names $op -} else { -$template->param(script_name => $script_name, - else => 1); # we show only the TMPL_VAR names $op -} -################## ADD_FORM ################################## -# called by default. Used to create form to add or modify a record -if ($op eq 'add_form') { - #start the page and read in includes - #---- if primkey exists, it's a modify action, so read values to modify... - my $data; - my $itemtypes; - my $dbh = C4::Context->dbh; - my @itemtypesselected; - if ($subcategorycode) { - my $sth=$dbh->prepare("select subcategorycode,description,itemtypecodes from subcategorytable where subcategorycode=?"); - $sth->execute($subcategorycode); - $data=$sth->fetchrow_hashref; - $sth->finish; - @itemtypesselected = split ( /\|/, $data->{'itemtypecodes'} ); - } - - my $sth=$dbh->prepare("select description,itemtype from itemtypes order by description"); - $sth->execute; - while (my ($description,$itemtype) = $sth->fetchrow) { - $itemtypes .=''; - } - - $template->param(subcategorycode => $subcategorycode, - description => $data->{'description'}, - itemtypes => $itemtypes - ); -; - # END $OP eq ADD_FORM -################## ADD_VALIDATE ################################## -# called by add_form, used to insert/modify data in DB -} elsif ($op eq 'add_validate') { - my $dbh = C4::Context->dbh; - my @itemtypecodesarray = $input->param('itemtypecodes'); - my $itemtypecodes=join('|',@itemtypecodesarray); - my $sth=$dbh->prepare("replace subcategorytable (subcategorycode,description,itemtypecodes) values (?,?,?)"); - $sth->execute( - $input->param('subcategorycode'),$input->param('description'), - $itemtypecodes - ); - $sth->finish; - print "Content-Type: text/html\n\n"; - exit; - # END $OP eq ADD_VALIDATE -################## DELETE_CONFIRM ################################## -# called by default form, used to confirm deletion of data in DB -} elsif ($op eq 'delete_confirm') { - #start the page and read in includes - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("select subcategorycode,description,itemtypecodes from subcategorytable where subcategorycode=?"); - $sth->execute($subcategorycode); - my $data=$sth->fetchrow_hashref; - $sth->finish; - - $template->param(subcategorycode => $subcategorycode, - description => $data->{'description'}, - itemtypecodes => $data->{'itemtypecodes'}); - # END $OP eq DELETE_CONFIRM -################## DELETE_CONFIRMED ################################## -# called by delete_confirm, used to effectively confirm deletion of data in DB -} elsif ($op eq 'delete_confirmed') { - #start the page and read in includes - my $dbh = C4::Context->dbh; - my $subcategorycode=uc($input->param('subcategorycode')); - my $sth=$dbh->prepare("delete from subcategorytable where subcategorycode=?"); - $sth->execute($subcategorycode); - $sth->finish; - print "Content-Type: text/html\n\n"; - exit; - # END $OP eq DELETE_CONFIRMED -################## DEFAULT ################################## -} else { # DEFAULT - my ($count,$results)=StringSearch($searchfield,'web'); - my $toggle=0; - my @loop_data; - for (my $i=$offset; $i < ($offset+$pagesize<$count?$offset+$pagesize:$count); $i++){ - my %row_data; - if ($toggle eq 0){ - $toggle=1; - } else { - $toggle=0; - } - $row_data{toggle} = $toggle; - $row_data{subcategorycode} = $results->[$i]{subcategorycode}; - $row_data{description} = $results->[$i]{description}; - $row_data{itemtypecodes} = $results->[$i]{itemtypecodes}; - push(@loop_data, \%row_data); - } - $template->param(loop => \@loop_data); - if ($offset>0) { - my $prevpage = $offset-$pagesize; - $template->param(previous => "$script_name?offset=".$prevpage); - } - if ($offset+$pagesize<$count) { - my $nextpage =$offset+$pagesize; - $template->param(next => "$script_name?offset=".$nextpage); - } -} #---- END $OP eq DEFAULT -output_html_with_http_headers $input, $cookie, $template->output; - -# Local Variables: -# tab-width: 4 -# End: diff --git a/admin/mediatype.pl b/admin/mediatype.pl deleted file mode 100755 index 3d7a85e2f2..0000000000 --- a/admin/mediatype.pl +++ /dev/null @@ -1,210 +0,0 @@ -#!/usr/bin/perl -# NOTE: 4-character tabs - -#script to administer the mediatype table -#modified from the itemtype script written 20/02/2002 by paul.poulain@free.fr -#This script written by waylon@robertson.net.nz at 2nd June, 2005 - -# This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html) - -# ALGO : -# this script use an $op to know what to do. -# if $op is empty or none of the above values, -# - the default screen is build (with all records, or filtered datas). -# - the user can clic on add, modify or delete record. -# if $op=add_form -# - if primkey exists, this is a modification,so we read the $primkey record -# - builds the add/modify form -# if $op=add_validate -# - the user has just send datas, so we create/modify the record -# if $op=delete_form -# - we show the record having primkey=$primkey and ask for deletion validation form -# if $op=delete_confirm -# - we delete the record having primkey=$primkey - - -# Copyright 2000-2002 Katipo Communications -# -# This file is part of Koha. -# -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - -use strict; -use CGI; -use C4::Context; -use C4::Auth; -use C4::Output; - - -sub StringSearch { - my ($searchstring,$type)=@_; - my $dbh = C4::Context->dbh; - $searchstring=~ s/\'/\\\'/g; - my @data=split(' ',$searchstring); - my $count=@data; - my $sth=$dbh->prepare("SELECT * FROM mediatypetable WHERE (description LIKE ?) ORDER BY mediatypecode"); - $sth->execute("$data[0]%"); - my @results; - while (my $data=$sth->fetchrow_hashref){ - push(@results,$data); - } - # $sth->execute; - $sth->finish; - return (scalar(@results),\@results); -} - -my $input = new CGI; -my $searchfield=$input->param('description'); -my $offset=$input->param('offset'); -my $script_name="/cgi-bin/koha/admin/mediatype.pl"; -my $mediatypecode=$input->param('mediatypecode'); -my $pagesize=20; -my $op = $input->param('op'); -$searchfield=~ s/\,//g; -my ($template, $borrowernumber, $cookie) - = get_template_and_user({template_name => "admin/mediatype.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {parameters => 1}, - debug => 1, - }); - -if ($op) { -$template->param(script_name => $script_name, - $op => 1); # we show only the TMPL_VAR names $op -} else { -$template->param(script_name => $script_name, - else => 1); # we show only the TMPL_VAR names $op -} -################## ADD_FORM ################################## -# called by default. Used to create form to add or modify a record -if ($op eq 'add_form') { - #start the page and read in includes - #---- if primkey exists, it's a modify action, so read values to modify... - my $data; - my $itemtypes; - my $dbh = C4::Context->dbh; - my @itemtypesselected; - if ($mediatypecode) { - my $sth=$dbh->prepare("SELECT mediatypecode,description,itemtypecodes FROM mediatypetable WHERE mediatypecode=?"); - $sth->execute($mediatypecode); - $data=$sth->fetchrow_hashref; - $sth->finish; - @itemtypesselected = split ( /\|/, $data->{'itemtypecodes'} ); - } - - my $sth=$dbh->prepare("SELECT description,itemtype FROM itemtypes ORDER BY description"); - $sth->execute; - while (my ($description,$itemtype) = $sth->fetchrow) { - $itemtypes .=''; - } - - $template->param(mediatypecode => $mediatypecode, - description => $data->{'description'}, - itemtypes => $itemtypes - ); -; - # END $OP eq ADD_FORM -################## ADD_VALIDATE ################################## -# called by add_form, used to insert/modify data in DB -} elsif ($op eq 'add_validate') { - my $dbh = C4::Context->dbh; - my @itemtypecodesarray = $input->param('itemtypecodes'); - my $itemtypecodes=join('|',@itemtypecodesarray); - my $sth = $dbh->prepaer("SELECT * FROM mediatypetable WHERE mediatypecode = ?"); - $sth->execute($input->param('mediatypecode')); - if (my $data = $sth->fetchrow_hashref()){ - # row exists, so its a modify - $sth->finish(); - $sth = $dbh->prepare("UPDATE mediatypetable SET description=?, itemtypecodes=? WHERE mediatypecode =? "); - $sth->execute($input->param('description'),$itemtypecodes,$input->param('mediatypecode')); - $sth->finish(); - } - else { - # its an add - $sth->finish(); - $sth = $dbh->prepare("INSERT INTO mediattypetable (mediatypecode,description,itemtypecodes) VALUES (?,?,?)"); - $sth->execute( - $input->param('mediatypecode'),$input->param('description'), - $itemtypecodes - ); - $sth->finish; - } - print "Content-Type: text/html\n\n"; - exit; - # END $OP eq ADD_VALIDATE -################## DELETE_CONFIRM ################################## -# called by default form, used to confirm deletion of data in DB -} elsif ($op eq 'delete_confirm') { - #start the page and read in includes - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("select mediatypecode,description,itemtypecodes from mediatypetable where mediatypecode=?"); - $sth->execute($mediatypecode); - my $data=$sth->fetchrow_hashref; - $sth->finish; - - $template->param(mediatypecode => $mediatypecode, - description => $data->{'description'}, - itemtypecodes => $data->{'itemtypecodes'}); - # END $OP eq DELETE_CONFIRM -################## DELETE_CONFIRMED ################################## -# called by delete_confirm, used to effectively confirm deletion of data in DB -} elsif ($op eq 'delete_confirmed') { - #start the page and read in includes - my $dbh = C4::Context->dbh; - my $mediatypecode=uc($input->param('mediatypecode')); - my $sth=$dbh->prepare("delete from mediatypetable where mediatypecode=?"); - $sth->execute($mediatypecode); - $sth->finish; - print "Content-Type: text/html\n\n"; - exit; - # END $OP eq DELETE_CONFIRMED -################## DEFAULT ################################## -} else { # DEFAULT - my ($count,$results)=StringSearch($searchfield,'web'); - my $toggle=0; - my @loop_data; - for (my $i=$offset; $i < ($offset+$pagesize<$count?$offset+$pagesize:$count); $i++){ - my %row_data; - if ($toggle eq 0){ - $toggle=1; - } else { - $toggle=0; - } - $row_data{toggle} = $toggle; - $row_data{mediatypecode} = $results->[$i]{mediatypecode}; - $row_data{description} = $results->[$i]{description}; - $row_data{itemtypecodes} = $results->[$i]{itemtypecodes}; - push(@loop_data, \%row_data); - } - $template->param(loop => \@loop_data); - if ($offset>0) { - my $prevpage = $offset-$pagesize; - $template->param(previous => "$script_name?offset=".$prevpage); - } - if ($offset+$pagesize<$count) { - my $nextpage =$offset+$pagesize; - $template->param(next => "$script_name?offset=".$nextpage); - } -} #---- END $OP eq DEFAULT -output_html_with_http_headers $input, $cookie, $template->output; - -# Local Variables: -# tab-width: 4 -# End: diff --git a/installer/data/Pg/kohastructure.sql b/installer/data/Pg/kohastructure.sql index a7569f2258..6669613a53 100644 --- a/installer/data/Pg/kohastructure.sql +++ b/installer/data/Pg/kohastructure.sql @@ -615,19 +615,6 @@ category_type varchar(1) NOT NULL default 'A', PRIMARY KEY (categorycode) ); --- --- Table structure for table categorytable --- - ---DROP TABLE categorytable; - -CREATE TABLE categorytable ( -categorycode varchar(5) NOT NULL default '', -description text, -itemtypecodes text, -PRIMARY KEY (categorycode) -); - -- -- Table structure for table cities -- @@ -1126,19 +1113,6 @@ frameworkcode varchar(4) NOT NULL default '', PRIMARY KEY (frameworkcode,tagfield) ); --- --- Table structure for table mediatypetable --- - ---DROP TABLE mediatypetable; - -CREATE TABLE mediatypetable ( -mediatypecode varchar(5) NOT NULL default '', -description text, -itemtypecodes text, -PRIMARY KEY (mediatypecode) -); - -- -- Table structure for table notifys -- @@ -1386,19 +1360,6 @@ CREATE TABLE stopwords ( word varchar(255) default NULL ); --- --- Table structure for table subcategorytable --- - ---DROP TABLE subcategorytable; - -CREATE TABLE subcategorytable ( -subcategorycode varchar(5) NOT NULL default '', -description text, -itemtypecodes text, -PRIMARY KEY (subcategorycode) -); - -- -- Table structure for table subscription -- diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 254032d6d6..8dd16fd69a 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -596,18 +596,6 @@ CREATE TABLE `categories` ( UNIQUE KEY `categorycode` (`categorycode`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- --- Table structure for table `categorytable` --- - -DROP TABLE IF EXISTS `categorytable`; -CREATE TABLE `categorytable` ( - `categorycode` varchar(5) NOT NULL default '', - `description` text, - `itemtypecodes` text, - PRIMARY KEY (`categorycode`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -- -- Table structure for table `cities` -- @@ -1320,18 +1308,6 @@ CREATE TABLE `matchchecks` ( REFERENCES `matchpoints` (`matchpoint_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- --- Table structure for table `mediatypetable` --- - -DROP TABLE IF EXISTS `mediatypetable`; -CREATE TABLE `mediatypetable` ( - `mediatypecode` varchar(5) NOT NULL default '', - `description` text, - `itemtypecodes` text, - PRIMARY KEY (`mediatypecode`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -- -- Table structure for table `notifys` -- @@ -1726,18 +1702,6 @@ DROP TABLE IF EXISTS `stopwords`; `word` varchar(255) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- --- Table structure for table `subcategorytable` --- - -DROP TABLE IF EXISTS `subcategorytable`; -CREATE TABLE `subcategorytable` ( - `subcategorycode` varchar(5) NOT NULL default '', - `description` text, - `itemtypecodes` text, - PRIMARY KEY (`subcategorycode`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -- -- Table structure for table `subscription` -- diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 592170d022..7544a2aaac 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -1197,7 +1197,7 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("DELETE FROM `systempreferences` WHERE variable='AmazonDevKey';"); $dbh->do("DELETE FROM `systempreferences` WHERE variable='XISBNAmazonSimilarItems';"); $dbh->do("DELETE FROM `systempreferences` WHERE variable='OPACXISBNAmazonSimilarItems';"); - print "Upgrade to $DBversion done (IMPORTANT: Upgrading to Amazon.com Associates Web Service 4.0 ) "; + print "Upgrade to $DBversion done (IMPORTANT: Upgrading to Amazon.com Associates Web Service 4.0 ) \n"; SetVersion ($DBversion); } @@ -1212,7 +1212,7 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { KEY `patroncards_ibfk_1` (`borrowernumber`), CONSTRAINT `patroncards_ibfk_1` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;"); - print "Upgrade to $DBversion done (Adding patroncards table for patroncards generation feature. ) "; + print "Upgrade to $DBversion done (Adding patroncards table for patroncards generation feature. ) \n"; SetVersion ($DBversion); } @@ -1221,14 +1221,14 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("ALTER TABLE `virtualshelfcontents` MODIFY `dateadded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP; "); - print "Upgrade to $DBversion done (fix for bug 1873: virtualshelfcontents dateadded column empty. ) "; + print "Upgrade to $DBversion done (fix for bug 1873: virtualshelfcontents dateadded column empty. ) \n"; SetVersion ($DBversion); } $DBversion = "3.00.00.067"; if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("UPDATE systempreferences SET explanation = 'Enable patron images for the Staff Client', type = 'YesNo' WHERE variable = 'patronimages'"); - print "Upgrade to $DBversion done (Updating patronimages syspref to reflect current kohastructure.sql. ) "; + print "Upgrade to $DBversion done (Updating patronimages syspref to reflect current kohastructure.sql. ) \n"; SetVersion ($DBversion); } @@ -1272,7 +1272,7 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('GranularPermissions','0','Use detailed staff user permissions',NULL,'YesNo')"); - print "Upgrade to $DBversion done (adding permissions and user_permissions tables and GranularPermissions syspref) "; + print "Upgrade to $DBversion done (adding permissions and user_permissions tables and GranularPermissions syspref) \n"; SetVersion ($DBversion); } @@ -1376,7 +1376,7 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { ('TagsShowOnDetail','10','','Number of tags to display on detail page. 0 is off.', 'Integer'), ('TagsShowOnList', '6','','Number of tags to display on search results list. 0 is off.','Integer') #); - print "Upgrade to $DBversion done (Baker/Taylor,Tags: sysprefs and tables (tags_all, tags_index, tags_approval)) "; + print "Upgrade to $DBversion done (Baker/Taylor,Tags: sysprefs and tables (tags_all, tags_index, tags_approval)) \n"; SetVersion ($DBversion); } @@ -1413,7 +1413,45 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("ALTER TABLE import_items MODIFY status enum('error', 'staged', 'imported', 'reverted', 'ignored') NOT NULL default 'staged'"); - print "Upgrade to $DBversion done (changes to import_batches and import_records) "; + print "Upgrade to $DBversion done (changes to import_batches and import_records)\n"; + SetVersion ($DBversion); +} + +$DBversion = "3.00.00.077"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + # drop these tables only if they exist and none of them are empty + # these tables are not defined in the packaged 2.2.9, but since it is believed + # that at least one library may be using them in a post-2.2.9 but pre-3.0 Koha, + # some care is taken. + my ($print_error) = $dbh->{PrintError}; + $dbh->{PrintError} = 0; + my ($raise_error) = $dbh->{RaiseError}; + $dbh->{RaiseError} = 1; + + my $count = 0; + my $do_drop = 1; + eval { $count = $dbh->do("SELECT 1 FROM categorytable"); }; + if ($count > 0) { + $do_drop = 0; + } + eval { $count = $dbh->do("SELECT 1 FROM mediatypetable"); }; + if ($count > 0) { + $do_drop = 0; + } + eval { $count = $dbh->do("SELECT 1 FROM subcategorytable"); }; + if ($count > 0) { + $do_drop = 0; + } + + if ($do_drop) { + $dbh->do("DROP TABLE IF EXISTS `categorytable`"); + $dbh->do("DROP TABLE IF EXISTS `mediatypetable`"); + $dbh->do("DROP TABLE IF EXISTS `subcategorytable`"); + } + + $dbh->{PrintError} = $print_error; + $dbh->{RaiseError} = $raise_error; + print "Upgrade to $DBversion done (drop categorytable, subcategorytable, and mediatypetable)\n"; SetVersion ($DBversion); } diff --git a/kohaversion.pl b/kohaversion.pl index 5d26b41a49..bf05d00ed5 100644 --- a/kohaversion.pl +++ b/kohaversion.pl @@ -10,7 +10,7 @@ use strict; sub kohaversion { - our $VERSION = "3.00.00.076"; + our $VERSION = "3.00.00.077"; # version needs to be set this way # so that it can be picked up by Makefile.PL # during install diff --git a/t/lib/KohaTest.pm b/t/lib/KohaTest.pm index cb89d6b2bc..d706741b34 100644 --- a/t/lib/KohaTest.pm +++ b/t/lib/KohaTest.pm @@ -58,7 +58,6 @@ sub startup_15_truncate_tables : Test( startup => 1 ) { # branchtransfers # browser # categories -# categorytable # cities # class_sort_rules # class_sources @@ -95,7 +94,6 @@ sub startup_15_truncate_tables : Test( startup => 1 ) { # matchpoint_component_norms # matchpoint_components # matchpoints -# mediatypetable # notifys # nozebra # old_issues @@ -121,7 +119,6 @@ sub startup_15_truncate_tables : Test( startup => 1 ) { # special_holidays # statistics # stopwords -# subcategorytable # subscription # subscriptionhistory # subscriptionroutinglist @@ -148,7 +145,6 @@ sub startup_15_truncate_tables : Test( startup => 1 ) { branchrelations branchtransfers browser - categorytable cities deletedbiblio deletedbiblioitems @@ -160,7 +156,6 @@ sub startup_15_truncate_tables : Test( startup => 1 ) { labels labels_profile matchchecks - mediatypetable notifys nozebra old_issues @@ -182,7 +177,6 @@ sub startup_15_truncate_tables : Test( startup => 1 ) { services_throttle special_holidays statistics - subcategorytable subscription subscriptionhistory subscriptionroutinglist -- 2.20.1