X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FpopulateRevisionLength.php;h=5e44fafd9f21f05ad4fec4b0084f779d8e1c7981;hb=b01d54e5981da34bf0ce6856e56d3841d71e8686;hp=297bed242e1abc736c8317cf0ec5c11f1070db8a;hpb=1f2706b49939bfc85ec5abc8ccc24aacd938eed0;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/populateRevisionLength.php b/maintenance/populateRevisionLength.php index 297bed242e..5e44fafd9f 100644 --- a/maintenance/populateRevisionLength.php +++ b/maintenance/populateRevisionLength.php @@ -1,7 +1,6 @@ getDB( DB_MASTER ); - if ( !$db->tableExists( 'revision' ) ) { + $dbw = $this->getDB( DB_MASTER ); + if ( !$dbw->tableExists( 'revision' ) ) { $this->error( "revision table does not exist", true ); - } elseif ( !$db->tableExists( 'archive' ) ) { + } elseif ( !$dbw->tableExists( 'archive' ) ) { $this->error( "archive table does not exist", true ); - } elseif ( !$db->fieldExists( 'revision', 'rev_len', __METHOD__ ) ) { + } elseif ( !$dbw->fieldExists( 'revision', 'rev_len', __METHOD__ ) ) { $this->output( "rev_len column does not exist\n\n", true ); return false; @@ -73,9 +73,10 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance { * @return int */ protected function doLenUpdates( $table, $idCol, $prefix, $fields ) { - $db = $this->getDB( DB_MASTER ); - $start = $db->selectField( $table, "MIN($idCol)", false, __METHOD__ ); - $end = $db->selectField( $table, "MAX($idCol)", false, __METHOD__ ); + $dbr = $this->getDB( DB_REPLICA ); + $dbw = $this->getDB( DB_MASTER ); + $start = $dbw->selectField( $table, "MIN($idCol)", false, __METHOD__ ); + $end = $dbw->selectField( $table, "MAX($idCol)", false, __METHOD__ ); if ( !$start || !$end ) { $this->output( "...$table table seems to be empty.\n" ); @@ -89,25 +90,27 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance { while ( $blockStart <= $end ) { $this->output( "...doing $idCol from $blockStart to $blockEnd\n" ); - $res = $db->select( + $res = $dbr->select( $table, $fields, - array( + [ "$idCol >= $blockStart", "$idCol <= $blockEnd", "{$prefix}_len IS NULL" - ), + ], __METHOD__ ); - $this->beginTransaction( $db, __METHOD__ ); - # Go through and update rev_len from these rows. - foreach ( $res as $row ) { - if ( $this->upgradeRow( $row, $table, $idCol, $prefix ) ) { - $count++; + if ( $res->numRows() > 0 ) { + $this->beginTransaction( $dbw, __METHOD__ ); + # Go through and update rev_len from these rows. + foreach ( $res as $row ) { + if ( $this->upgradeRow( $row, $table, $idCol, $prefix ) ) { + $count++; + } } + $this->commitTransaction( $dbw, __METHOD__ ); } - $this->commitTransaction( $db, __METHOD__ ); $blockStart += $this->mBatchSize; $blockEnd += $this->mBatchSize; @@ -125,7 +128,7 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance { * @return bool */ protected function upgradeRow( $row, $table, $idCol, $prefix ) { - $db = $this->getDB( DB_MASTER ); + $dbw = $this->getDB( DB_MASTER ); $rev = ( $table === 'archive' ) ? Revision::newFromArchiveRow( $row ) @@ -141,9 +144,9 @@ class PopulateRevisionLength extends LoggedUpdateMaintenance { } # Update the row... - $db->update( $table, - array( "{$prefix}_len" => $content->getSize() ), - array( $idCol => $row->$idCol ), + $dbw->update( $table, + [ "{$prefix}_len" => $content->getSize() ], + [ $idCol => $row->$idCol ], __METHOD__ );