mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-11-30 18:45:07 +00:00
Merge "removeOrphanedEvents.php: Also remove echo_target_page rows"
This commit is contained in:
commit
7ec0ac07eb
|
@ -18,7 +18,8 @@ class RemoveOrphanedEvents extends LoggedUpdateMaintenance {
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
$this->addDescription( "Remove rows from echo_event that don't have corresponding rows in echo_notification or echo_email_batch" );
|
$this->addDescription( "Remove rows from echo_event and echo_target_page that don't have corresponding rows in " .
|
||||||
|
"echo_notification or echo_email_batch" );
|
||||||
|
|
||||||
$this->setBatchSize( 500 );
|
$this->setBatchSize( 500 );
|
||||||
|
|
||||||
|
@ -50,19 +51,41 @@ class RemoveOrphanedEvents extends LoggedUpdateMaintenance {
|
||||||
|
|
||||||
$this->output( "Removing orphaned echo_event rows...\n" );
|
$this->output( "Removing orphaned echo_event rows...\n" );
|
||||||
|
|
||||||
$processed = 0;
|
$eventsProcessed = 0;
|
||||||
|
$targetsProcessed = 0;
|
||||||
foreach ( $iterator as $batch ) {
|
foreach ( $iterator as $batch ) {
|
||||||
$ids = [];
|
$ids = [];
|
||||||
foreach ( $batch as $row ) {
|
foreach ( $batch as $row ) {
|
||||||
$ids[] = $row->event_id;
|
$ids[] = $row->event_id;
|
||||||
}
|
}
|
||||||
$dbw->delete(
|
$dbw->delete( 'echo_event', [ 'event_id' => $ids ] );
|
||||||
'echo_event',
|
$eventsProcessed += $dbw->affectedRows();
|
||||||
[ 'event_id' => $ids ]
|
$dbw->delete( 'echo_target_page', [ 'etp_event' => $ids ] );
|
||||||
|
$targetsProcessed += $dbw->affectedRows();
|
||||||
|
$this->output( "Deleted $eventsProcessed orphaned events and $targetsProcessed target_page rows.\n" );
|
||||||
|
$dbFactory->waitForSlaves();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->output( "Removing any remaining orphaned echo_target_page rows...\n" );
|
||||||
|
$iterator = new BatchRowIterator(
|
||||||
|
$dbr,
|
||||||
|
[ 'echo_target_page', 'echo_event' ],
|
||||||
|
'etp_event',
|
||||||
|
$this->mBatchSize
|
||||||
);
|
);
|
||||||
|
$iterator->addJoinConditions( [ 'echo_event' => [ 'LEFT JOIN', 'event_id=etp_event' ] ] );
|
||||||
|
$iterator->addConditions( [ 'event_type' => null ] );
|
||||||
|
$iterator->addOptions( [ 'DISTINCT' ] );
|
||||||
|
|
||||||
|
$processed = 0;
|
||||||
|
foreach ( $iterator as $batch ) {
|
||||||
|
$ids = [];
|
||||||
|
foreach ( $batch as $row ) {
|
||||||
|
$ids[] = $row->etp_event;
|
||||||
|
}
|
||||||
|
$dbw->delete( 'echo_target_page', [ 'etp_event' => $ids ] );
|
||||||
$processed += $dbw->affectedRows();
|
$processed += $dbw->affectedRows();
|
||||||
$this->output( "Deleted $processed orphaned rows.\n" );
|
$this->output( "Deleted $processed orphaned target_page rows.\n" );
|
||||||
$dbFactory->waitForSlaves();
|
$dbFactory->waitForSlaves();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue