Merge "Update migrateUserGroup to deal with primary key issue"
authorDemon <chadh@wikimedia.org>
Thu, 30 Aug 2012 20:20:59 +0000 (20:20 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 30 Aug 2012 20:20:59 +0000 (20:20 +0000)
1  2 
maintenance/migrateUserGroup.php

   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
   * http://www.gnu.org/copyleft/gpl.html
   *
 + * @file
   * @ingroup Maintenance
   */
  
 -require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 +require_once( __DIR__ . '/Maintenance.php' );
  
 +/**
 + * Maintenance script that re-assigns users from an old group to a new one.
 + *
 + * @ingroup Maintenance
 + */
  class MigrateUserGroup extends Maintenance {
        public function __construct() {
                parent::__construct();
                        $dbw->update( 'user_groups',
                                array( 'ug_group' => $newGroup ),
                                array( 'ug_group' => $oldGroup,
-                                       "ug_user BETWEEN $blockStart AND $blockEnd" )
+                                       "ug_user BETWEEN $blockStart AND $blockEnd" ),
+                               __METHOD__,
+                               array( 'IGNORE' )
+                       );
+                       $count += $dbw->affectedRows();
+                       $dbw->delete( 'user_groups',
+                               array( 'ug_group' => $oldGroup,
+                                       "ug_user BETWEEN $blockStart AND $blockEnd" ),
+                               __METHOD__
                        );
                        $count += $dbw->affectedRows();
                        $dbw->commit( __METHOD__ );