27 $this->
output(
"Fixing log entries with log_title starting with 'User:#'\n" );
33 $lastProcessedLogId = 0;
37 $logIds = $dbr->newSelectQueryBuilder()
41 'log_type' =>
'block',
42 'log_action' =>
'unblock',
43 $dbr->expr(
'log_id',
'>', $lastProcessedLogId ),
46 ->orderBy(
'log_id', SelectQueryBuilder::SORT_ASC )
47 ->caller( __METHOD__ )
50 if ( count( $logIds ) ) {
51 $lastId = end( $logIds );
52 $firstId = reset( $logIds );
53 $this->
output(
"...Processing unblock rows with IDs $firstId to $lastId\n" );
57 $matchingRows = $dbr->newSelectQueryBuilder()
58 ->select( [
'log_id',
'log_title' ] )
63 new LikeValue(
'User:#', $dbr->anyString() )
65 ->andWhere( [
'log_id' => $logIds ] )
67 ->caller( __METHOD__ )
70 foreach ( $matchingRows as $row ) {
71 $dbw->newUpdateQueryBuilder()
73 ->set( [
'log_title' => substr( $row->log_title, strlen(
'User:' ) ) ] )
74 ->where( [
'log_id' => $row->log_id ] )
75 ->caller( __METHOD__ )
77 $totalRowsFixed += $dbw->affectedRows();
83 $lastProcessedLogId = end( $logIds );
84 }
while ( count( $logIds ) );
89 if ( $totalRowsFixed ) {
90 $this->
output(
" Fixed $totalRowsFixed rows." );