Bug 1861 [QA Followup] - Don't modify userids, warn if we can't modify the index...
authorKyle M Hall <kyle@bywatersolutions.com>
Thu, 20 Nov 2014 16:01:08 +0000 (11:01 -0500)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Sun, 28 Dec 2014 22:50:56 +0000 (19:50 -0300)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
installer/data/mysql/updatedatabase.pl

index 1fa6250..250f776 100755 (executable)
@@ -9610,17 +9610,21 @@ if ( CheckVersion($DBversion) ) {
 
 $DBversion = "3.19.00.XXX";
 if ( CheckVersion($DBversion) ) {
-    $dbh->do(q{
-        UPDATE borrowers SET userid = NULL where userid = ""
-    });
+    my ($count) = $dbh->selectrow_array("SELECT COUNT(*) FROM borrowers GROUP BY userid HAVING COUNT(userid) > 1");
 
-    $dbh->do(q{
-        ALTER TABLE borrowers
-            DROP INDEX userid ,
-            ADD UNIQUE userid (userid)
-    });
+    if ( $count ) {
+        print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced) FAILED!\n";
+        print "Your database has users with duplicate user logins. Please have your administrator deduplicate your user logins.\n";
+        print "Afterward, your Koha administrator should execute the following database query: ALTER TABLE borrowers DROP INDEX userid, ADD UNIQUE userid (userid)";
+    } else {
+        $dbh->do(q{
+            ALTER TABLE borrowers
+                DROP INDEX userid ,
+                ADD UNIQUE userid (userid)
+        });
+        print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced)\n";
+    }
 
-    print "Upgrade to $DBversion done (Bug 1861 - Unique patrons logins not (totally) enforced)\n";
     SetVersion($DBversion);
 }