X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FpopulateContentTables.php;h=93d5baf8d0cd72fda74a863c6e088edfe508e00f;hb=2323b0ba8161892714c3aba9fc6a4212397e0283;hp=20d6b8b740481b622e53187eef10e381182c5db0;hpb=7ca601fd08e9abf7f36ec13164742e143e8efd3f;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/populateContentTables.php b/maintenance/populateContentTables.php index 20d6b8b740..93d5baf8d0 100644 --- a/maintenance/populateContentTables.php +++ b/maintenance/populateContentTables.php @@ -21,6 +21,7 @@ use MediaWiki\MediaWikiServices; use MediaWiki\Storage\NameTableStore; +use MediaWiki\Storage\SlotRecord; use MediaWiki\Storage\SqlBlobStore; use Wikimedia\Assert\Assert; use Wikimedia\Rdbms\IDatabase; @@ -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 ];