X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FpopulateArchiveRevId.php;h=6eb2d6d61a4b7b8b77f0384f9cf834b36728c5fa;hb=1658759d42a5d802e29a71c3fd70ae127afd3e46;hp=60f5e8a12611cf07de699fa080597d902aa13857;hpb=fa6dbdf1006af58337e72f3c2f9fd63381bf3b03;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/populateArchiveRevId.php b/maintenance/populateArchiveRevId.php index 60f5e8a126..6eb2d6d61a 100644 --- a/maintenance/populateArchiveRevId.php +++ b/maintenance/populateArchiveRevId.php @@ -116,8 +116,8 @@ class PopulateArchiveRevId extends LoggedUpdateMaintenance { $toDelete[] = $id; $maxId = max( - (int)$dbw->selectField( 'archive', 'MAX(ar_rev_id)', [], __METHOD__ ), - (int)$dbw->selectField( 'slots', 'MAX(slot_revision_id)', [], __METHOD__ ) + (int)$dbw->selectField( 'archive', 'MAX(ar_rev_id)', [], $fname ), + (int)$dbw->selectField( 'slots', 'MAX(slot_revision_id)', [], $fname ) ); if ( $id <= $maxId ) { $dbw->insert( 'revision', [ 'rev_id' => $maxId + 1 ] + self::$dummyRev, $fname ); @@ -220,7 +220,43 @@ class PopulateArchiveRevId extends LoggedUpdateMaintenance { ); } if ( !$rev ) { - throw new UnexpectedValueException( 'No revisions are available to copy' ); + // Since no revisions are available to copy, generate a dummy + // revision to a dummy page, then rollback the commit + wfDebug( __METHOD__ . ": No revisions are available to copy\n" ); + + $dbw->begin(); + + // Make a title and revision and insert them + $title = Title::newFromText( "PopulateArchiveRevId_4b05b46a81e29" ); + $page = WikiPage::factory( $title ); + $updater = $page->newPageUpdater( + User::newSystemUser( 'Maintenance script', [ 'steal' => true ] ) + ); + $updater->setContent( + 'main', + ContentHandler::makeContent( "Content for dummy rev", $title ) + ); + $updater->saveRevision( + CommentStoreComment::newUnsavedComment( 'dummy rev summary' ), + EDIT_NEW | EDIT_SUPPRESS_RC + ); + + // get the revision row just inserted + $rev = $dbw->selectRow( + 'revision', + '*', + [], + __METHOD__, + [ 'ORDER BY' => 'rev_timestamp ASC' ] + ); + + $dbw->rollback(); + } + if ( !$rev ) { + // This should never happen. + throw new UnexpectedValueException( + 'No revisions are available to copy, and one couldn\'t be created' + ); } unset( $rev->rev_id );