X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=installer%2Fdata%2Fmysql%2Fupdatedatabase.pl;h=6c27ab714412c1e467173aa5f7a322981af4d91a;hb=f4ab1e836fe9589d4656e396387c8d679962090b;hp=67708fa36e752f0495d954512ee53281c298f8e5;hpb=c8982e1ab41ef54ba66afd3ed313e81cde307004;p=koha_gimpoz
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index 67708fa36e..6c27ab7144 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -15,9 +15,9 @@
# 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
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Bugs/ToDo:
@@ -4497,7 +4497,6 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
print "Upgrade to $DBversion done (Add 461 subfield 9 to default framework)\n";
SetVersion ($DBversion);
}
-
}
$DBversion = "3.05.00.018";
@@ -4551,40 +4550,457 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
-$DBversion = "3.06.00.001";
+$DBversion = "3.07.00.001";
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
- my $borrowers = $dbh->selectcol_arrayref( "SELECT borrowernumber from borrowers where debarred <>0;", { Columns => [1] } );
+ my $borrowers = $dbh->selectcol_arrayref( "SELECT borrowernumber from borrowers where debarred =1;", { Columns => [1] } );
$dbh->do("ALTER TABLE borrowers MODIFY debarred DATE DEFAULT NULL;");
$dbh->do( "UPDATE borrowers set debarred='9999-12-31' where borrowernumber IN (" . join( ",", @$borrowers ) . ");" ) if ($borrowers and scalar(@$borrowers)>0);
$dbh->do("ALTER TABLE borrowers ADD COLUMN debarredcomment VARCHAR(255) DEFAULT NULL AFTER debarred;");
$dbh->do("ALTER TABLE deletedborrowers MODIFY debarred DATE DEFAULT NULL;");
$dbh->do("ALTER TABLE deletedborrowers ADD COLUMN debarredcomment VARCHAR(255) DEFAULT NULL AFTER debarred;");
print "Upgrade done (Change borrowers.debarred into Date )\n";
-
SetVersion($DBversion);
}
-$DBversion = "3.06.00.002";
+$DBversion = "3.07.00.002";
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
$dbh->do("UPDATE borrowers SET debarred=NULL WHERE debarred='0000-00-00';");
print "Setting NULL to debarred where 0000-00-00 is stored (bug 7272)\n";
SetVersion($DBversion);
}
-$DBversion = "3.06.02.001";
+$DBversion = "3.07.00.003";
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
$dbh->do(" UPDATE `message_attributes` SET message_name='Item_Due' WHERE message_name='Item_DUE'");
print "Updating message_name in message_attributes\n";
SetVersion($DBversion);
}
-$DBversion = "3.06.03.001";
+$DBversion = "3.07.00.004";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do("ALTER TABLE `suggestions` ADD `patronreason` TEXT NULL AFTER `reason`");
print "Upgrade to $DBversion done (Add column to suggestions table to store patrons' reasons for submitting a suggestion. )\n";
SetVersion($DBversion);
}
+$DBversion = "3.07.00.005";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('BorrowerUnwantedField','','Name the fields you don''t need to store for a patron''s account',NULL,'free')");
+ print "Upgrade to $DBversion done (BorrowerUnwantedField syspref)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.07.00.006";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CircAutoPrintQuickSlip', '1', 'Choose what should happen when an empty barcode field is submitted in circulation: Display a print quick slip window or Clear the screen.',NULL,'YesNo');");
+ print "Upgrade to $DBversion done (Add syspref CircAutoPrintQuickSlip to control what should happen when an empty barcode field is submitted in circulation: Display a print quick slip window (default value, 3.6 behaviour) or clear the screen (previous 3.6 behaviour). )\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.007";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE items MODIFY materials text;");
+ print "Upgrade to $DBversion done alter items.material from varchar(10) to text \n";
+ SetVersion($DBversion);
+}
+
+$DBversion = '3.07.00.008';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ if (C4::Context->preference("marcflavour") eq 'MARC21') {
+ if (C4::Context->preference("opaclanguages") eq "de") {
+ $dbh->do("INSERT INTO `marc_tag_structure` (`tagfield`, `liblibrarian`, `libopac`, `repeatable`, `mandatory`, `authorised_value`, `frameworkcode`) VALUES ('545', 'FuÃnote zu biografischen oder historischen Daten', 'FuÃnote zu biografischen oder historischen Daten', 1, 0, NULL, '');");
+ } else {
+ $dbh->do("INSERT INTO `marc_tag_structure` (`tagfield`, `liblibrarian`, `libopac`, `repeatable`, `mandatory`, `authorised_value`, `frameworkcode`) VALUES ('545', 'BIOGRAPHICAL OR HISTORICAL DATA', 'BIOGRAPHICAL OR HISTORICAL DATA', 1, 0, NULL, '');");
+ }
+ }
+ print "Upgrade to $DBversion done (add MARC21 field 545 to framework)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.07.00.009";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("ALTER TABLE `aqorders` ADD COLUMN `claims_count` INT(11) DEFAULT 0, ADD COLUMN `claimed_date` DATE DEFAULT NULL AFTER `claims_count`");
+ print "Upgrade to $DBversion done (Add claims_count and claimed_date fields in aqorders table)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.010";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do(
+ q|CREATE TABLE `biblioimages` (
+ `imagenumber` int(11) NOT NULL AUTO_INCREMENT,
+ `biblionumber` int(11) NOT NULL,
+ `mimetype` varchar(15) NOT NULL,
+ `imagefile` mediumblob NOT NULL,
+ `thumbnail` mediumblob NOT NULL,
+ PRIMARY KEY (`imagenumber`),
+ CONSTRAINT `bibliocoverimage_fk1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8|
+ );
+ $dbh->do(
+ q|INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('OPACLocalCoverImages','0','Display local cover images on OPAC search and details pages.','1','YesNo')|
+ );
+ $dbh->do(
+ q|INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('LocalCoverImages','0','Display local cover images on intranet search and details pages.','1','YesNo')|
+ );
+ $dbh->do(
+ q|INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('AllowMultipleCovers','0','Allow multiple cover images to be attached to each bibliographic record.','1','YesNo')|
+ );
+ $dbh->do(
+ q|INSERT INTO permissions (module_bit, code, description) VALUES (13, 'upload_local_cover_images', 'Upload local cover images')|
+ );
+ print "Upgrade to $DBversion done (Added support for local cover images)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.011";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do(<preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO `systempreferences` (variable,value,options,explanation,type) VALUES ('AllowItemsOnHoldCheckout',0,'Do not generate RESERVE_WAITING and RESERVED warning when checking out items reserved to someone else. This allows self checkouts for those items.','','YesNo')");
+ print "Upgrade to $DBversion add 'AllowItemsOnHoldCheckout' syspref \n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.07.00.013";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacExportOptions','bibtex|dc|marcxml|marc8|utf8|marcstd|mods|ris','Define available export options on OPAC detail page.','','free');");
+ print "Upgrade to $DBversion done (Bug 7345: Add system preference OpacExportOptions.)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.07.00.014";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ print "RELTERMS category available for English-, French-, and Spanish-language relator terms. They are not loaded during upgrade but can be easily inserted using the provided marc21_relatorterms.sql SQL script (MARC21 only, and currently available for en, es, and fr only).\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.015";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ my $sth = $dbh->prepare(q|
+ SELECT COUNT(*) FROM marc_subfield_structure where kohafield="biblioitems.editionstatement"
+ |);
+ $sth->execute;
+ my $already_exists = $sth->fetchrow;
+ if ( not $already_exists ) {
+ my $field = C4::Context->preference("marcflavour") eq "UNIMARC" ? "205" : "250";
+ my $subfield = "a";
+ my $sth = $dbh->prepare( q|
+ UPDATE marc_subfield_structure SET kohafield = "biblioitems.editionstatement"
+ WHERE tagfield = ? AND tagsubfield = ?
+ |);
+ $sth->execute( $field, $subfield );
+ print "Upgrade to $DBversion done (Added a mapping for biblioitems.editionstatement.)\n";
+ } else {
+ print "Upgrade to $DBversion done (Added a mapping for biblioitems.editionstatement (already exists, nothing to do).)\n";
+ }
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.016";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("ALTER TABLE items ADD KEY `itemcallnumber` (itemcallnumber)");
+ print "Upgrade to $DBversion done (Added index on items.itemcallnumber)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.017";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('TransferWhenCancelAllWaitingHolds','0','Transfer items when cancelling all waiting holds',NULL,'YesNo')");
+ print "Upgrade to $DBversion done (Add sysprefs to control transfer when cancel all waiting holds)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.07.00.018";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("CREATE TABLE pending_offline_operations ( operationid int(11) NOT NULL AUTO_INCREMENT, userid varchar(30) NOT NULL, branchcode varchar(10) NOT NULL, timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, action varchar(10) NOT NULL, barcode varchar(20) NOT NULL, cardnumber varchar(16) DEFAULT NULL, PRIMARY KEY (operationid) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
+ print "Upgrade to $DBversion done ( adding offline operations table )\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.019";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do(" UPDATE `systempreferences` SET `value` = 'none', `options` = 'none|full|first|surname|firstandinitial|username', `explanation` = 'Choose how a commenter''s identity is presented alongside comments in the OPAC', `type` = 'Choice' WHERE `systempreferences`.`variable` = 'ShowReviewer' AND `systempreferences`.`variable` = 0");
+ $dbh->do(" UPDATE `systempreferences` SET `value` = 'full', `options` = 'none|full|first|surname|firstandinitial|username', `explanation` = 'Choose how a commenter''s identity is presented alongside comments in the OPAC', `type` = 'Choice' WHERE `systempreferences`.`variable` = 'ShowReviewer' AND `systempreferences`.`variable` = 1");
+ print "Upgrade to $DBversion done ( Adding additional options for the display of commenter's identity in the OPAC: Full name, first name, last name, first name and last name first initial, username, or no information)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.020";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OPACpatronimages',0,'Enable patron images in the OPAC',NULL,'YesNo');");
+ print "Upgrade to $DBversion done (Bug 3516: Add the option to show patron images in the OPAC.)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.021";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do(
+ "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('LinkerModule','Default','Chooses which linker module to use (see documentation).','Default|FirstMatchLastMatch','Choice');"
+ );
+ $dbh->do(
+ "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('LinkerOptions','','A pipe-separated list of options for the linker.','','free');"
+ );
+ $dbh->do(
+ "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('LinkerRelink',1,'If ON the authority linker will relink headings that have previously been linked every time it runs.',NULL,'YesNo');"
+ );
+ $dbh->do(
+ "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('LinkerKeepStale',0,'If ON the authority linker will keep existing authority links for headings where it is unable to find a match.',NULL,'YesNo');"
+ );
+ $dbh->do(
+ "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AutoCreateAuthorities',0,'Automatically create authorities that do not exist when cataloging records.',NULL,'YesNo');"
+ );
+ $dbh->do(
+ "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CatalogModuleRelink',0,'If OFF the linker will never replace the authids that are set in the cataloging module.',NULL,'YesNo');"
+ );
+ print "Upgrade to $DBversion done (Enhancement 7284, improved authority matching, see http://wiki.koha-community.org/wiki/Bug7284_authority_matching_improvement wiki page for configuration update needed)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.022";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("DELETE FROM reviews WHERE biblionumber NOT IN (SELECT biblionumber from biblio)");
+ $dbh->do("UPDATE reviews SET borrowernumber = NULL WHERE borrowernumber NOT IN (SELECT borrowernumber FROM borrowers)");
+ $dbh->do("ALTER TABLE reviews ADD CONSTRAINT reviews_ibfk_2 FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE");
+ $dbh->do("ALTER TABLE reviews ADD CONSTRAINT reviews_ibfk_1 FOREIGN KEY (borrowernumber) REFERENCES borrowers (borrowernumber ) ON UPDATE CASCADE ON DELETE SET NULL");
+ print "Upgrade to $DBversion done (Bug 7493 - Add constraint linking OPAC comment biblionumber to biblio, OPAC comment borrowernumber to borrowers.)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.023";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE `message_transports` DROP FOREIGN KEY `message_transports_ibfk_3`");
+ $dbh->do("ALTER TABLE `letter` DROP PRIMARY KEY");
+ $dbh->do("ALTER TABLE `letter` ADD `branchcode` varchar(10) default NULL AFTER `code`");
+ $dbh->do("ALTER TABLE `letter` ADD PRIMARY KEY (`module`,`code`, `branchcode`)");
+ $dbh->do("ALTER TABLE `message_transports` ADD `branchcode` varchar(10) NOT NULL default ''");
+ $dbh->do("ALTER TABLE `message_transports` ADD CONSTRAINT `message_transports_ibfk_3` FOREIGN KEY (`letter_module`, `letter_code`, `branchcode`) REFERENCES `letter` (`module`, `code`, `branchcode`) ON DELETE CASCADE ON UPDATE CASCADE");
+ $dbh->do("ALTER TABLE `letter` ADD `is_html` tinyint(1) default 0 AFTER `name`");
+
+ $dbh->do("INSERT INTO `letter` (module, code, name, title, content, is_html)
+ VALUES ('circulation','ISSUESLIP','Issue Slip','Issue Slip', '<>
+Checked out to <> <> <> <>
+(<>)
+
+<>
+
+Checked Out
+
+
+<>
+Barcode: <>
+Date due: <>
+
+
+
+Overdues
+
+
+<>
+Barcode: <>
+Date due: <>
+
+
+
+
+
+News
+
+
+', 1)");
+ $dbh->do("INSERT INTO `letter` (module, code, name, title, content, is_html)
+ VALUES ('circulation','ISSUEQSLIP','Issue Quick Slip','Issue Quick Slip', '<>
+Checked out to <> <> <> <>
+(<>)
+
+<>
+
+Checked Out Today
+
+
+<>
+Barcode: <>
+Date due: <>
+
+', 1)");
+ $dbh->do("INSERT INTO `letter` (module, code, name, title, content, is_html)
+ VALUES ('circulation','RESERVESLIP','Reserve Slip','Reserve Slip', 'Date: <>
+
+ Transfer to/Hold in <>
+
+<>, <>
+
+
+ - <>
+ - <>
+ - <>
+ <>
+ <> <>
+
+ - <>
+
+
+ITEM ON HOLD
+<>
+<>
+
+Notes:
+
<>
+
', 1)");
+ $dbh->do("INSERT INTO `letter` (module, code, name, title, content, is_html)
+ VALUES ('circulation','TRANSFERSLIP','Transfer Slip','Transfer Slip', 'Date: <>
+Transfer to <>
+
+ITEM
+<>
+<>
+', 1)");
+
+ $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('NoticeCSS','','Notices CSS url.',NULL,'free')");
+ $dbh->do("INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES('SlipCSS','','Slips CSS url.',NULL,'free')");
+
+ $dbh->do("UPDATE `letter` SET content = replace(content, '<>', '<>') WHERE code = 'HOLDPLACED'");
+
+ print "Upgrade to $DBversion done (Add branchcode and is_html to letter table; Default ISSUESLIP, RESERVESLIP and TRANSFERSLIP letters; Add NoticeCSS and SlipCSS sysprefs)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.024";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('ExpireReservesMaxPickUpDelayCharge', '0', NULL , 'If ExpireReservesMaxPickUpDelay is enabled, and this field has a non-zero value, than a borrower whose waiting hold has expired will be charged this amount.', 'free')");
+ $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('ExpireReservesMaxPickUpDelay', '0', '', 'Enabling this allows holds to expire automatically if they have not been picked by within the time period specified in ReservesMaxPickUpDelay', 'YesNo')");
+ print "Upgrade to $DBversion done (Added system preference ExpireReservesMaxPickUpDelay, system preference ExpireReservesMaxPickUpDelayCharge, add reseves.charge_if_expired)\n";
+}
+
+$DBversion = "3.07.00.025";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do( q|DROP TABLE bibliocoverimage;| );
+ $dbh->do(
+ q|CREATE TABLE biblioimages (
+ imagenumber int(11) NOT NULL AUTO_INCREMENT,
+ biblionumber int(11) NOT NULL,
+ mimetype varchar(15) NOT NULL,
+ imagefile mediumblob NOT NULL,
+ thumbnail mediumblob NOT NULL,
+ PRIMARY KEY (imagenumber),
+ CONSTRAINT bibliocoverimage_fk1 FOREIGN KEY (biblionumber) REFERENCES biblio (biblionumber) ON DELETE CASCADE ON UPDATE CASCADE
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;|
+ );
+ print "Upgrade to $DBversion done (Correct table name for local cover images [please disregard the following error messages: \"Unknown table 'bibliocoverimage'...\" and \"Table 'biblioimages' already exists...\"])\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.026";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('CalendarFirstDayOfWeek','Sunday','Select the first day of week to use in the calendar.','Sunday|Monday','Choice');");
+ print "Upgrade to $DBversion done (Add syspref CalendarFirstDayOfWeek used to select the first day of week to use in the calendar. )\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.027";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do(q{INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('RoutingListNote','','Define a note to be shown on all routing lists','70|10','Textarea');});
+ print "Upgrade to $DBversion done (Added system preference RoutingListNote for adding a general note to all routing lists.)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.028";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do(qq{
+ INSERT INTO `systempreferences` (variable,value,explanation,options,type) VALUES ('AllowPKIAuth','None','Use the field from a client-side SSL certificate to look a user in the Koha database','None|Common Name|emailAddress','Choice');
+ });
+ print "Upgrade to $DBversion done (Bug 6296 New System preference AllowPKIAuth)\n";
+ SetVersion($DBversion);
+}
+
+
+$DBversion = "3.07.00.029";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ my $installer = C4::Installer->new();
+ my $full_path = C4::Context->config('intranetdir') . "/installer/data/$installer->{dbms}/atomicupdate/oai_sets.sql";
+ my $error = $installer->load_sql($full_path);
+ warn $error if $error;
+ print "Upgrade to $DBversion done (Atomic update for OAI-PMH sets management)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.030";
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("ALTER TABLE default_circ_rules ADD
+ COLUMN `returnbranch` varchar(15) default NULL AFTER `holdallowed`");
+ $dbh->do("ALTER TABLE branch_item_rules ADD
+ COLUMN `returnbranch` varchar(15) default NULL AFTER `holdallowed`");
+ $dbh->do("ALTER TABLE default_branch_circ_rules ADD
+ COLUMN `returnbranch` varchar(15) default NULL AFTER `holdallowed`");
+ $dbh->do("ALTER TABLE default_branch_item_rules ADD
+ COLUMN `returnbranch` varchar(15) default NULL AFTER `holdallowed`");
+ # set the default rule to the current value of HomeOrHoldingBranchReturn (default to 'homebranch' if need be)
+ my $homeorholdingbranchreturn = C4::Context->prefernce('HomeOrHoldingBranchReturn') || 'homebranch';
+ $dbh->do("UPDATE default_circ_rules SET returnbranch = '$homeorholdingbranchreturn'");
+ print "Upgrade to $DBversion done (Atomic update for OAI-PMH sets management)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.031";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('UseICU', '1', 'Tell Koha if ICU indexing is in use for Zebra or not.','1','YesNo')");
+ print "Upgrade to $DBversion done (Add syspref to tell Koha if ICU indexing is in use for Zebra or not.)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.07.00.032";
+if ( C4::Context->preference("Version") lt TransformToNum($DBversion) ) {
+ $dbh->do("ALTER TABLE virtualshelves MODIFY COLUMN owner int"); #should have been int already (fk to borrowers)
+ $dbh->do("UPDATE virtualshelves vi LEFT JOIN borrowers bo ON bo.borrowernumber=vi.owner SET vi.owner=NULL where bo.borrowernumber IS NULL"); #before adding the constraint on borrowernumber, we need to get rid of deleted owners
+ $dbh->do("DELETE FROM virtualshelves WHERE owner IS NULL and category=1"); #delete private lists without owner (cascades to shelfcontents)
+ $dbh->do("ALTER TABLE virtualshelves ADD COLUMN allow_add tinyint(1) DEFAULT 0, ADD COLUMN allow_delete_own tinyint(1) DEFAULT 1, ADD COLUMN allow_delete_other tinyint(1) DEFAULT 0, ADD CONSTRAINT `virtualshelves_ibfk_1` FOREIGN KEY (`owner`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL");
+ $dbh->do("UPDATE virtualshelves SET allow_add=0, allow_delete_own=1, allow_delete_other=0 WHERE category=1");
+ $dbh->do("UPDATE virtualshelves SET allow_add=0, allow_delete_own=1, allow_delete_other=0 WHERE category=2");
+ $dbh->do("UPDATE virtualshelves SET allow_add=1, allow_delete_own=1, allow_delete_other=1 WHERE category=3");
+ $dbh->do("UPDATE virtualshelves SET category=2 WHERE category=3");
+
+ $dbh->do("ALTER TABLE virtualshelfcontents ADD COLUMN borrowernumber int, ADD CONSTRAINT `shelfcontents_ibfk_3` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL");
+ $dbh->do("UPDATE virtualshelfcontents co LEFT JOIN virtualshelves sh USING (shelfnumber) SET co.borrowernumber=sh.owner");
+
+ $dbh->do("CREATE TABLE virtualshelfshares
+ (id int AUTO_INCREMENT PRIMARY KEY, shelfnumber int NOT NULL,
+ borrowernumber int, invitekey varchar(10), sharedate datetime,
+ CONSTRAINT `virtualshelfshares_ibfk_1` FOREIGN KEY (`shelfnumber`) REFERENCES `virtualshelves` (`shelfnumber`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `virtualshelfshares_ibfk_2` FOREIGN KEY (`borrowernumber`) REFERENCES `borrowers` (`borrowernumber`) ON DELETE SET NULL ON UPDATE SET NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8");
+
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacAllowPublicListCreation',1,'If set, allows opac users to create public lists',NULL,'YesNo');");
+ $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacAllowSharingPrivateLists',0,'If set, allows opac users to share private lists with other patrons',NULL,'YesNo');");
+
+ print "Upgrade to $DBversion done (BZ7310: Improving list permissions)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.07.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE branches ADD opac_info text;");
+ print "Upgrade to $DBversion done add opac_info to branches \n";
+ SetVersion($DBversion);
+}
+
=head1 FUNCTIONS
=head2 DropAllForeignKeys($table)