X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FpopulateContentTables.php;h=644ff87ee83b9cdef7f29f0db197a773266a6a10;hb=95e140cb71a8733d6e6cec9138908d00e192e93c;hp=20d6b8b740481b622e53187eef10e381182c5db0;hpb=0e2e1254dfefb89c3a81f4053e69fa01d478a22e;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/populateContentTables.php b/maintenance/populateContentTables.php index 20d6b8b740..644ff87ee8 100644 --- a/maintenance/populateContentTables.php +++ b/maintenance/populateContentTables.php @@ -20,6 +20,7 @@ */ use MediaWiki\MediaWikiServices; +use MediaWiki\Revision\SlotRecord; use MediaWiki\Storage\NameTableStore; use MediaWiki\Storage\SqlBlobStore; use Wikimedia\Assert\Assert; @@ -58,13 +59,16 @@ class PopulateContentTables extends Maintenance { 'Reuse content table rows when the address and model are the same. ' . 'This will increase the script\'s time and memory usage, perhaps significantly.', false, false ); + $this->addOption( 'start-revision', 'The rev_id to start at', false, true ); + $this->addOption( 'start-archive', 'The ar_rev_id to start at', false, true ); $this->setBatchSize( 500 ); } private function initServices() { $this->dbw = $this->getDB( DB_MASTER ); $this->contentModelStore = MediaWikiServices::getInstance()->getContentModelStore(); - $this->mainRoleId = MediaWikiServices::getInstance()->getSlotRoleStore()->acquireId( 'main' ); + $this->mainRoleId = MediaWikiServices::getInstance()->getSlotRoleStore() + ->acquireId( SlotRecord::MAIN ); } public function execute() { @@ -165,6 +169,7 @@ class PopulateContentTables extends Maintenance { 'slots' => [ 'LEFT JOIN', 'rev_id=slot_revision_id' ], 'page' => [ 'LEFT JOIN', 'rev_page=page_id' ], ]; + $startOption = 'start-revision'; } else { $idField = 'ar_rev_id'; $tables = [ 'archive', 'slots' ]; @@ -180,6 +185,7 @@ class PopulateContentTables extends Maintenance { $joins = [ 'slots' => [ 'LEFT JOIN', 'ar_rev_id=slot_revision_id' ], ]; + $startOption = 'start-archive'; } $minmax = $this->dbw->selectRow( @@ -188,6 +194,9 @@ class PopulateContentTables extends Maintenance { '', __METHOD__ ); + if ( $this->hasOption( $startOption ) ) { + $minmax->min = (int)$this->getOption( $startOption ); + } if ( !$minmax || !is_numeric( $minmax->min ) || !is_numeric( $minmax->max ) ) { // No rows? $minmax = (object)[ 'min' => 1, 'max' => 0 ];