X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=installer%2Fdata%2Fmysql%2Fupdatedatabase.pl;h=8328192738a3be3891a9298503fb142e4f364b66;hb=92782d38328e712ddde5c7f879473c6cb46aaef3;hp=3eb95c4ebdfafe7ca84ba796b277e05ad5a74a72;hpb=550ac77bfd0194d8b00fb79b5a4591ba3d76be30;p=koha_fer diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 3eb95c4ebd..8328192738 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -64,6 +64,7 @@ GetOptions( my $dbh = C4::Context->dbh; $|=1; # flushes output +local $dbh->{RaiseError} = 0; # Record the version we are coming from @@ -5713,6 +5714,110 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { ) ENGINE=InnoDB DEFAULT CHARSET=utf8"); print "Upgrade to $DBversion done (creating `transport_cost` table; adding UseTransportCostMatrix systempref, in circulation)\n"; + SetVersion($DBversion); +} + +$DBversion = '3.09.00.XXX'; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(" + CREATE TABLE IF NOT EXISTS `borrower_modifications` ( + `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + `verification_token` varchar(255) NOT NULL DEFAULT '', + `borrowernumber` int(11) NOT NULL DEFAULT '0', + `cardnumber` varchar(16) DEFAULT NULL, + `surname` mediumtext, + `firstname` text, + `title` mediumtext, + `othernames` mediumtext, + `initials` text, + `streetnumber` varchar(10) DEFAULT NULL, + `streettype` varchar(50) DEFAULT NULL, + `address` mediumtext, + `address2` text, + `city` mediumtext, + `state` text, + `zipcode` varchar(25) DEFAULT NULL, + `country` text, + `email` mediumtext, + `phone` text, + `mobile` varchar(50) DEFAULT NULL, + `fax` mediumtext, + `emailpro` text, + `phonepro` text, + `B_streetnumber` varchar(10) DEFAULT NULL, + `B_streettype` varchar(50) DEFAULT NULL, + `B_address` varchar(100) DEFAULT NULL, + `B_address2` text, + `B_city` mediumtext, + `B_state` text, + `B_zipcode` varchar(25) DEFAULT NULL, + `B_country` text, + `B_email` text, + `B_phone` mediumtext, + `dateofbirth` date DEFAULT NULL, + `branchcode` varchar(10) DEFAULT NULL, + `categorycode` varchar(10) DEFAULT NULL, + `dateenrolled` date DEFAULT NULL, + `dateexpiry` date DEFAULT NULL, + `gonenoaddress` tinyint(1) DEFAULT NULL, + `lost` tinyint(1) DEFAULT NULL, + `debarred` date DEFAULT NULL, + `debarredcomment` varchar(255) DEFAULT NULL, + `contactname` mediumtext, + `contactfirstname` text, + `contacttitle` text, + `guarantorid` int(11) DEFAULT NULL, + `borrowernotes` mediumtext, + `relationship` varchar(100) DEFAULT NULL, + `ethnicity` varchar(50) DEFAULT NULL, + `ethnotes` varchar(255) DEFAULT NULL, + `sex` varchar(1) DEFAULT NULL, + `password` varchar(30) DEFAULT NULL, + `flags` int(11) DEFAULT NULL, + `userid` varchar(75) DEFAULT NULL, + `opacnote` mediumtext, + `contactnote` varchar(255) DEFAULT NULL, + `sort1` varchar(80) DEFAULT NULL, + `sort2` varchar(80) DEFAULT NULL, + `altcontactfirstname` varchar(255) DEFAULT NULL, + `altcontactsurname` varchar(255) DEFAULT NULL, + `altcontactaddress1` varchar(255) DEFAULT NULL, + `altcontactaddress2` varchar(255) DEFAULT NULL, + `altcontactaddress3` varchar(255) DEFAULT NULL, + `altcontactstate` text, + `altcontactzipcode` varchar(50) DEFAULT NULL, + `altcontactcountry` text, + `altcontactphone` varchar(50) DEFAULT NULL, + `smsalertnumber` varchar(50) DEFAULT NULL, + `privacy` int(11) DEFAULT NULL, + PRIMARY KEY (`verification_token`,`borrowernumber`), + KEY `verification_token` (`verification_token`), + KEY `borrowernumber` (`borrowernumber`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +"); + + $dbh->do(" + INSERT INTO systempreferences (`variable`, `value`, `options`, `explanation`, `type`) VALUES + ('PatronSelfRegistration', '0', NULL, 'If enabled, patrons will be able to register themselves via the OPAC.', 'YesNo'), + ('PatronSelfRegistrationVerifyByEmail', '0', NULL, 'If enabled, any patron attempting to register themselves via the OPAC will be required to verify themselves via email to activate his or her account.', 'YesNo'), + ('PatronSelfRegistrationDefaultCategory', '', '', 'A patron registered via the OPAC will receive a borrower category code set in this system preference.', 'free'), + ('PatronSelfRegistrationExpireTemporaryAccountsDelay', '0', NULL, 'If PatronSelfRegistrationDefaultCategory is enabled, this system preference controls how long a patron can have a temporary status before the account is deleted automatically. It is an integer value representing a number of days to wait before deleting a temporary patron account. Setting it to 0 disables the deleting of temporary accounts.', 'Integer'), + ('PatronSelfRegistrationBorrowerMandatoryField', 'surname|firstname', NULL , 'Choose the mandatory fields for a patron''s account, when registering via the OPAC.', 'free'), + ('PatronSelfRegistrationBorrowerUnwantedField', '', NULL , 'Name the fields you don''t want to display when registering a new patron via the OPAC.', 'free'); + "); + + $dbh->do(" + INSERT INTO letter ( `module`, `code`, `branchcode`, `name`, `is_html`, `title`, `content` ) + VALUES ( 'members', 'OPAC_REG_VERIFY', '', 'Opac Self-Registration Verification Email', '1', 'Verify Your Account', 'Hello! + + Your library account has been created. Please verify your email address by clicking this link to complete the signup process: + + http://<>/cgi-bin/koha/opac-registration-verify.pl?token=<> + + If you did not initiate this request, you may safely ignore this one-time message. The request will expire shortly.' + )"); + + print "Upgrade to $DBversion done (Add Patron Self Registration)\n"; SetVersion ($DBversion); } @@ -6012,7 +6117,6 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } - $DBversion = "3.09.00.062"; if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do("UPDATE systempreferences SET value=0 WHERE variable='NoZebra'"); @@ -6080,10 +6184,9 @@ $DBversion = "3.11.00.001"; if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('alphabet','A B C D E F G H I J K L M N O P Q R S T U V W X Y Z','Alphabet that can be expanded into browse links, e.g. on Home > Patrons',NULL,'free')"); print "Upgrade to $DBversion done (Bug 2832 - Add alphabet syspref)\n"; - SetVersion($DBversion); } -$DBversion = "3.11.00.XXX"; +$DBversion = "3.11.00.002"; if (C4::Context->preference("Version") < TransformToNum($DBversion)) { $dbh->do(q{ DELETE from aqorders_items where ordernumber NOT IN (SELECT ordernumber FROM aqorders); @@ -6097,6 +6200,91 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { SetVersion ($DBversion); } +$DBversion = "3.11.00.003"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('RefundLostItemFeeOnReturn', '1', 'If enabled, the lost item fee charged to a borrower will be refunded when the lost item is returned.', NULL, 'YesNo')"); + print "Upgrade to $DBversion done (Bug 7189: Add system preference RefundLostItemFeeOnReturn)\n"; + SetVersion($DBversion); +} + +$DBversion = "3.11.00.004"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do(qq{ + ALTER TABLE subscription ADD COLUMN closed INT(1) NOT NULL DEFAULT 0 AFTER enddate; + }); + + print "Upgrade to $DBversion done (Bug 8782: Add field subscription.closed)\n"; + SetVersion($DBversion); +} + +$DBversion = "3.11.00.005"; +if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { + $dbh->do(qq{CREATE TABLE borrower_attribute_types_branches(bat_code VARCHAR(10), b_branchcode VARCHAR(10),FOREIGN KEY (bat_code) REFERENCES borrower_attribute_types(code) ON DELETE CASCADE,FOREIGN KEY (b_branchcode) REFERENCES branches(branchcode) ON DELETE CASCADE ) ENGINE=INNODB DEFAULT CHARSET=utf8;}); + + $dbh->do(qq{CREATE TABLE categories_branches(categorycode VARCHAR(10), branchcode VARCHAR(10), FOREIGN KEY (categorycode) REFERENCES categories(categorycode) ON DELETE CASCADE, FOREIGN KEY (branchcode) REFERENCES branches(branchcode) ON DELETE CASCADE ) ENGINE=INNODB DEFAULT CHARSET=utf8;}); + + $dbh->do(qq{CREATE TABLE authorised_values_branches(av_id INTEGER, branchcode VARCHAR(10), FOREIGN KEY (av_id) REFERENCES authorised_values(id) ON DELETE CASCADE, FOREIGN KEY (branchcode) REFERENCES branches(branchcode) ON DELETE CASCADE ) ENGINE=INNODB DEFAULT CHARSET=utf8;}); + + print "Upgrade to $DBversion done (Bug 7919: Display of values depending on the connexion library)\n"; + SetVersion($DBversion); +} + +$DBversion = "3.11.00.006"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + $dbh->do(q{ + UPDATE virtualshelves SET sortfield="copyrightdate" where sortfield="year"; + }); + print "Upgrade to $DBversion done (Bug 9167: Update the virtualshelves.sortfield column with 'copyrightdate' if needed)\n"; + SetVersion($DBversion); +} + +$DBversion = "3.11.00.007"; +if (C4::Context->preference("Version") < TransformToNum($DBversion)) { + print "Upgrade to $DBversion done (Bug 9056: add German and a couple of French translations to language_descriptions"; + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ar', 'language', 'de', 'Arabisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'hy', 'language', 'de', 'Armenisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'bg', 'language', 'de', 'Bulgarisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'zh', 'language', 'de', 'Chinesisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'cs', 'language', 'de', 'Tschechisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'da', 'language', 'de', 'Dänisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'nl', 'language', 'de', 'Niederländisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'en', 'language', 'de', 'Englisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'fi', 'language', 'de', 'Finnisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'fr', 'language', 'de', 'Französisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'lo', 'language', 'fr', 'Laotien')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'lo', 'language', 'de', 'Laotisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'el', 'language', 'de', 'Griechisch (Nach 1453)')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'he', 'language', 'de', 'Hebräisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'hi', 'language', 'de', 'Hindi')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'hu', 'language', 'de', 'Ungarisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'id', 'language', 'de', 'Indonesisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'it', 'language', 'de', 'Italienisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ja', 'language', 'de', 'Japanisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ko', 'language', 'de', 'Koreanisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'la', 'language', 'de', 'Latein')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'gl', 'language', 'fr', 'Galicien')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'gl', 'language', 'de', 'Galizisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'nb', 'language', 'de', 'Norwegisch bokmål')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'nn', 'language', 'de', 'Norwegisch nynorsk')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'fa', 'language', 'de', 'Persisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'pl', 'language', 'de', 'Polnisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'pt', 'language', 'de', 'Portugiesisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ro', 'language', 'de', 'Rumänisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ru', 'language', 'de', 'Russisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'sr', 'language', 'fr', 'Serbe')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'sr', 'language', 'de', 'Serbisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'es', 'language', 'de', 'Spanisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'sv', 'language', 'de', 'Schwedisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'tet', 'language', 'fr', 'Tétoum')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'tet', 'language', 'de', 'Tetum')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'th', 'language', 'de', 'Thailändisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'tr', 'language', 'de', 'Türkisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'uk', 'language', 'de', 'Ukrainisch')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ur', 'language', 'fr', 'Ourdou')"); + $dbh->do("INSERT INTO language_descriptions (subtag, type, lang, description) VALUES( 'ur', 'language', 'de', 'Urdu')"); + SetVersion ($DBversion); +} + =head1 FUNCTIONS =head2 TableExists($table) @@ -6178,4 +6366,33 @@ sub SetVersion { } C4::Context::clear_syspref_cache(); # invalidate cached preferences } + +=head2 CheckVersion + +Check whether a given update should be run when passed the proposed version +number. The update will always be run if the proposed version is greater +than the current database version and less than or equal to the version in +kohaversion.pl. The update is also run if the version contains XXX, though +this behavior will be changed following the adoption of non-linear updates +as implemented in bug 7167. + +=cut + +sub CheckVersion { + my ($proposed_version) = @_; + my $version_number = TransformToNum($proposed_version); + + # The following line should be deleted when bug 7167 is pushed + return 1 if ( $proposed_version =~ m/XXX/ ); + + if ( C4::Context->preference("Version") < $version_number + && $version_number <= TransformToNum( C4::Context->final_linear_version ) ) + { + return 1; + } + else { + return 0; + } +} + exit;