[ Index ] |
PHP Cross Reference of MediaWiki-1.24.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Makes the required database updates for Special:ProtectedPages 4 * to show all protected pages, even ones before the page restrictions 5 * schema change. All remaining page_restriction column values are moved 6 * to the new table. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License along 19 * with this program; if not, write to the Free Software Foundation, Inc., 20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 * http://www.gnu.org/copyleft/gpl.html 22 * 23 * @file 24 * @ingroup Maintenance 25 */ 26 27 require_once __DIR__ . '/Maintenance.php'; 28 29 /** 30 * Maintenance script that makes the required database updates for 31 * Special:ProtectedPages to show all protected pages. 32 * 33 * @ingroup Maintenance 34 */ 35 class PopulateLogUsertext extends LoggedUpdateMaintenance { 36 public function __construct() { 37 parent::__construct(); 38 $this->mDescription = "Populates the log_user_text field"; 39 $this->setBatchSize( 100 ); 40 } 41 42 protected function getUpdateKey() { 43 return 'populate log_usertext'; 44 } 45 46 protected function updateSkippedMessage() { 47 return 'log_user_text column of logging table already populated.'; 48 } 49 50 protected function doDBUpdates() { 51 $db = $this->getDB( DB_MASTER ); 52 $start = $db->selectField( 'logging', 'MIN(log_id)', false, __METHOD__ ); 53 if ( !$start ) { 54 $this->output( "Nothing to do.\n" ); 55 56 return true; 57 } 58 $end = $db->selectField( 'logging', 'MAX(log_id)', false, __METHOD__ ); 59 60 # Do remaining chunk 61 $end += $this->mBatchSize - 1; 62 $blockStart = $start; 63 $blockEnd = $start + $this->mBatchSize - 1; 64 while ( $blockEnd <= $end ) { 65 $this->output( "...doing log_id from $blockStart to $blockEnd\n" ); 66 $cond = "log_id BETWEEN $blockStart AND $blockEnd AND log_user = user_id"; 67 $res = $db->select( array( 'logging', 'user' ), 68 array( 'log_id', 'user_name' ), $cond, __METHOD__ ); 69 70 $db->begin( __METHOD__ ); 71 foreach ( $res as $row ) { 72 $db->update( 'logging', array( 'log_user_text' => $row->user_name ), 73 array( 'log_id' => $row->log_id ), __METHOD__ ); 74 } 75 $db->commit( __METHOD__ ); 76 $blockStart += $this->mBatchSize; 77 $blockEnd += $this->mBatchSize; 78 wfWaitForSlaves(); 79 } 80 $this->output( "Done populating log_user_text field.\n" ); 81 82 return true; 83 } 84 } 85 86 $maintClass = "PopulateLogUsertext"; 87 require_once RUN_MAINTENANCE_IF_MAIN;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 14:03:12 2014 | Cross-referenced by PHPXref 0.7.1 |