+$DBversion = "3.00.00.093";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE `items` MODIFY COLUMN `copynumber` VARCHAR(32) DEFAULT NULL");
+ $dbh->do("ALTER TABLE `deleteditems` MODIFY COLUMN `copynumber` VARCHAR(32) DEFAULT NULL");
+ print "Upgrade to $DBversion done (Change data type of items.copynumber to allow free text)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.00.00.094";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("ALTER TABLE `marc_subfield_structure` MODIFY `tagsubfield` VARCHAR(1) NOT NULL DEFAULT '' COLLATE utf8_bin");
+ print "Upgrade to $DBversion done (Change Collation of marc_subfield_structure to allow mixed case in subfield labels.)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.00.00.095";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ if (C4::Context->preference("marcflavour") eq 'MARC21') {
+ $dbh->do("UPDATE marc_subfield_structure SET authtypecode = 'MEETI_NAME' WHERE authtypecode = 'Meeting Name'");
+ $dbh->do("UPDATE marc_subfield_structure SET authtypecode = 'CORPO_NAME' WHERE authtypecode = 'CORP0_NAME'");
+ }
+ print "Upgrade to $DBversion done (fix invalid authority types in MARC21 frameworks [bug 2254])\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.00.00.096";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $sth = $dbh->prepare("SHOW COLUMNS FROM borrower_message_preferences LIKE 'wants_digets'");
+ $sth->execute();
+ if (my $row = $sth->fetchrow_hashref) {
+ $dbh->do("ALTER TABLE borrower_message_preferences CHANGE wants_digets wants_digest tinyint(1) NOT NULL default 0");
+ }
+ print "Upgrade to $DBversion done (fix name borrower_message_preferences.wants_digest)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = '3.00.00.097';
+if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
+
+ $dbh->do('ALTER TABLE message_queue ADD to_address mediumtext default NULL');
+ $dbh->do('ALTER TABLE message_queue ADD from_address mediumtext default NULL');
+ $dbh->do('ALTER TABLE message_queue ADD content_type text');
+ $dbh->do('ALTER TABLE message_queue CHANGE borrowernumber borrowernumber int(11) default NULL');
+
+ print "Upgrade to $DBversion done (updating 4 fields in message_queue table)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = '3.00.00.098';
+if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
+
+ $dbh->do(q(DELETE FROM message_transport_types WHERE message_transport_type = 'rss'));
+ $dbh->do(q(DELETE FROM message_transports WHERE message_transport_type = 'rss'));
+
+ print "Upgrade to $DBversion done (removing unused RSS message_transport_type)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = '3.00.00.099';
+if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
+ $dbh->do("INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES('OpacSuppression', '0', '', 'Turn ON the OPAC Suppression feature, requires further setup, ask your system administrator for details', 'YesNo')");
+ print "Upgrade to $DBversion done (Adding OpacSuppression syspref)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = '3.00.00.100';
+if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
+ $dbh->do('ALTER TABLE virtualshelves ADD COLUMN lastmodified timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP');
+ print "Upgrade to $DBversion done (Adding lastmodified column to virtualshelves)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = '3.00.00.101';
+if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
+ $dbh->do('ALTER TABLE `overduerules` CHANGE `categorycode` `categorycode` VARCHAR(10) NOT NULL');
+ $dbh->do('ALTER TABLE `deletedborrowers` CHANGE `categorycode` `categorycode` VARCHAR(10) NOT NULL');
+ print "Upgrade to $DBversion done (Updating columnd definitions for patron category codes in notice/statsu triggers and deletedborrowers tables.)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = '3.00.00.102';
+if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
+ $dbh->do('ALTER TABLE serialitems MODIFY `serialid` int(11) NOT NULL AFTER itemnumber' );
+ $dbh->do('ALTER TABLE serialitems DROP KEY serialididx' );
+ $dbh->do('ALTER TABLE serialitems ADD CONSTRAINT UNIQUE KEY serialitemsidx (itemnumber)' );
+ # before setting constraint, delete any unvalid data
+ $dbh->do('DELETE from serialitems WHERE serialid not in (SELECT serial.serialid FROM serial)');
+ $dbh->do('ALTER TABLE serialitems ADD CONSTRAINT serialitems_sfk_1 FOREIGN KEY (serialid) REFERENCES serial (serialid) ON DELETE CASCADE ON UPDATE CASCADE' );
+ print "Upgrade to $DBversion done (Updating serialitems table to allow for multiple items per serial fixing kohabug 2380)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.00.00.103";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("DELETE FROM systempreferences WHERE variable='serialsadditems'");
+ print "Upgrade to $DBversion done ( Verifying the removal of serialsadditems from syspref fixing kohabug 2219)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = "3.00.00.104";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("DELETE FROM systempreferences WHERE variable='noOPACHolds'");
+ print "Upgrade to $DBversion done (remove superseded 'noOPACHolds' system preference per bug 2413)\n";
+ SetVersion ($DBversion);
+}
+
+$DBversion = '3.00.00.105';
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+
+ # it is possible that this syspref is already defined since the feature was added some time ago.
+ unless ( $dbh->do(q(SELECT variable FROM systempreferences WHERE variable = 'SMSSendDriver')) ) {
+ $dbh->do(<<'END_SQL');
+INSERT INTO `systempreferences`
+ (variable,value,explanation,options,type)
+VALUES
+('SMSSendDriver','','Sets which SMS::Send driver is used to send SMS messages.','','free')
+END_SQL
+ }
+ print "Upgrade to $DBversion done (added SMSSendDriver system preference)\n";
+ SetVersion($DBversion);
+}
+
+$DBversion = "3.00.00.106";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do("DELETE FROM systempreferences WHERE variable='noOPACHolds'");
+
+# db revision 105 didn't apply correctly, so we're rolling this into 106
+ $dbh->do("INSERT INTO `systempreferences`
+ (variable,value,explanation,options,type)
+ VALUES
+ ('SMSSendDriver','','Sets which SMS::Send driver is used to send SMS messages.','','free')");
+
+ print "Upgrade to $DBversion done (remove default '0000-00-00' in subscriptionhistory.enddate field)\n";
+ $dbh->do("ALTER TABLE `subscriptionhistory` CHANGE `enddate` `enddate` DATE NULL DEFAULT NULL ");
+ $dbh->do("UPDATE subscriptionhistory SET enddate=NULL WHERE enddate='0000-00-00'");
+ SetVersion ($DBversion);
+}
+
+$DBversion = '3.00.00.107';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ $dbh->do(<<'END_SQL');
+UPDATE systempreferences
+ SET explanation = CONCAT( explanation, '. WARNING: this feature is very resource consuming on collections with large numbers of items.' )
+ WHERE variable = 'OPACShelfBrowser'
+ AND explanation NOT LIKE '%WARNING%'
+END_SQL
+ $dbh->do(<<'END_SQL');
+UPDATE systempreferences
+ SET explanation = CONCAT( explanation, '. WARNING: this feature is very resource consuming.' )
+ WHERE variable = 'CataloguingLog'
+ AND explanation NOT LIKE '%WARNING%'
+END_SQL
+ $dbh->do(<<'END_SQL');
+UPDATE systempreferences
+ SET explanation = CONCAT( explanation, '. WARNING: using NoZebra on even modest sized collections is very slow.' )
+ WHERE variable = 'NoZebra'
+ AND explanation NOT LIKE '%WARNING%'
+END_SQL
+ print "Upgrade to $DBversion done (warning added to OPACShelfBrowser system preference)\n";
+ SetVersion ($DBversion);
+}
+if (C4::Context->preference("Version") =~/3\.00/) {
+ my $perllibdir=C4::Context->config('intranetdir');
+ my $return=do qq($perllibdir/installer/data/mysql/updatedatabase30.pl);
+ unless ($return){
+ print STDERR "cannot read file $perllibdir/installer/data/mysql/updatedatabase30.pl : $! \n" if ($!);
+ print STDERR "cannot read file $ENV{'PERL5LIB'}/installer/data/mysql/updatedatabase30.pl : $@ \n" if ($@);
+ }
+}
+
+