X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/19e297c21b10b1b8a3acad5e73fc71dcb35db44a..6932310fd58ebef145fa01eb76edf7150284d8ea:/maintenance/populateLogUsertext.php diff --git a/maintenance/populateLogUsertext.php b/maintenance/populateLogUsertext.php index bb3927ce..dd120fe0 100644 --- a/maintenance/populateLogUsertext.php +++ b/maintenance/populateLogUsertext.php @@ -20,23 +20,39 @@ * 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'; -class PopulateLogUsertext extends Maintenance { +/** + * Maintenance script that makes the required database updates for + * Special:ProtectedPages to show all protected pages. + * + * @ingroup Maintenance + */ +class PopulateLogUsertext extends LoggedUpdateMaintenance { public function __construct() { parent::__construct(); - $this->mDescription = "Populates the log_user_text"; + $this->addDescription( 'Populates the log_user_text field' ); $this->setBatchSize( 100 ); } - public function execute() { - $db = wfGetDB( DB_MASTER ); + protected function getUpdateKey() { + return 'populate log_usertext'; + } + + protected function updateSkippedMessage() { + return 'log_user_text column of logging table already populated.'; + } + + protected function doDBUpdates() { + $db = $this->getDB( DB_MASTER ); $start = $db->selectField( 'logging', 'MIN(log_id)', false, __METHOD__ ); if ( !$start ) { $this->output( "Nothing to do.\n" ); + return true; } $end = $db->selectField( 'logging', 'MAX(log_id)', false, __METHOD__ ); @@ -48,35 +64,24 @@ class PopulateLogUsertext extends Maintenance { while ( $blockEnd <= $end ) { $this->output( "...doing log_id from $blockStart to $blockEnd\n" ); $cond = "log_id BETWEEN $blockStart AND $blockEnd AND log_user = user_id"; - $res = $db->select( array( 'logging', 'user' ), - array( 'log_id', 'user_name' ), $cond, __METHOD__ ); + $res = $db->select( [ 'logging', 'user' ], + [ 'log_id', 'user_name' ], $cond, __METHOD__ ); - $db->begin(); + $this->beginTransaction( $db, __METHOD__ ); foreach ( $res as $row ) { - $db->update( 'logging', array( 'log_user_text' => $row->user_name ), - array( 'log_id' => $row->log_id ), __METHOD__ ); + $db->update( 'logging', [ 'log_user_text' => $row->user_name ], + [ 'log_id' => $row->log_id ], __METHOD__ ); } - $db->commit(); + $this->commitTransaction( $db, __METHOD__ ); $blockStart += $this->mBatchSize; $blockEnd += $this->mBatchSize; - wfWaitForSlaves( 5 ); - } - if ( $db->insert( - 'updatelog', - array( 'ul_key' => 'populate log_usertext' ), - __METHOD__, - 'IGNORE' - ) - ) { - $this->output( "log_usertext population complete.\n" ); - return true; - } else { - $this->output( "Could not insert log_usertext population row.\n" ); - return false; + wfWaitForSlaves(); } + $this->output( "Done populating log_user_text field.\n" ); + + return true; } } $maintClass = "PopulateLogUsertext"; -require_once( RUN_MAINTENANCE_IF_MAIN ); - +require_once RUN_MAINTENANCE_IF_MAIN;