Fixing code for 3.3.0.42 update.
Adding code at end of update script if install past that point already.
---
installer/data/mysql/updatedatabase.pl | 29 +++++++++++++++++++++++++----
1 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/installer/data/mysql/updatedatabase.pl
b/installer/data/mysql/updatedatabase.pl
index f503112..02b3ea2 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -4216,13 +4216,27 @@ if (C4::Context->preference("Version") <
TransformToNum($DBversion)) {
}
$DBversion = '3.03.00.042';
-if (C4::Context->preference("Version") < TransformToNum($DBversion) &&
$original_version < TransformToNum("3.02.06.001")) {
- $dbh->do("ALTER TABLE `items` DROP INDEX `itemsstocknumberidx`;");
- $dbh->do("ALTER TABLE items ADD INDEX itemstocknumberidx (stocknumber);");
- print "Upgrade to $DBversion done (Change items.stocknumber to be not
unique)\n";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ stocknumber_checker();
+ print "Upgrade to $DBversion done (5860 Index itemstocknumber)\n";
SetVersion ($DBversion);
}
+sub stocknumber_checker { #code reused later on
+ my @row;
+ #drop the obsolete itemSStocknumber idx if it exists
+ @row = $dbh->selectrow_array("SHOW INDEXES FROM items WHERE
key_name='itemsstocknumberidx'");
+ $dbh->do("ALTER TABLE `items` DROP INDEX `itemsstocknumberidx`;") if @row;
+
+ #check itemstocknumber idx; remove it if it is unique
+ @row = $dbh->selectrow_array("SHOW INDEXES FROM items WHERE
key_name='itemstocknumberidx' AND non_unique=0");
+ $dbh->do("ALTER TABLE `items` DROP INDEX `itemstocknumberidx`;") if @row;
+
+ #add itemstocknumber index non-unique IF it still not exists
+ @row = $dbh->selectrow_array("SHOW INDEXES FROM items WHERE
key_name='itemstocknumberidx'");
+ $dbh->do("ALTER TABLE items ADD INDEX itemstocknumberidx (stocknumber);")
unless @row;
+}
+
$DBversion = "3.03.00.043";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
@@ -4323,6 +4337,13 @@ if (C4::Context->preference("Version") <
TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
+$DBversion = '3.04.00.XXX';
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+ #follow up fix 5860: some installs already past 3.3.0.42
+ stocknumber_checker();
+ print "Upgrade to $DBversion done (Fix for stocknumber index)\n";
+ SetVersion ($DBversion);
+}
=head1 FUNCTIONS
--
1.6.0.6
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/