28 require_once __DIR__ .
'/Maintenance.php';
39 parent::__construct();
41 'Remove cache entries for removed ResourceLoader modules from the database' );
46 $this->
output(
"Cleaning up module_deps table...\n" );
49 $rl = MediaWikiServices::getInstance()->getResourceLoader();
50 $moduleNames = $rl->getModuleNames();
51 $res = $dbw->newSelectQueryBuilder()
52 ->select( [
'md_module',
'md_skin' ] )
53 ->from(
'module_deps' )
54 ->where( $moduleNames ?
'md_module NOT IN (' . $dbw->makeList( $moduleNames ) .
')' :
'1=1' )
55 ->caller( __METHOD__ )
57 $rows = iterator_to_array(
$res,
false );
59 $modDeps = $dbw->tableName(
'module_deps' );
61 foreach ( array_chunk( $rows, $this->
getBatchSize() ) as $chunk ) {
63 $conds = array_map(
static function ( stdClass $row ) use ( $dbw ) {
69 $dbw->query(
"DELETE FROM $modDeps WHERE $conds", __METHOD__ );
70 $numRows = $dbw->affectedRows();
71 $this->
output(
"Batch $i: $numRows rows\n" );
82 require_once RUN_MAINTENANCE_IF_MAIN;
Maintenance script to remove cache entries for removed ResourceLoader modules from the database.
execute()
Do the actual work.
__construct()
Default constructor.
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
getDB( $db, $groups=[], $dbDomain=false)
Returns a database to be used by current maintenance script.
beginTransaction(IDatabase $dbw, $fname)
Begin a transaction on a DB.
commitTransaction(IDatabase $dbw, $fname)
Commit the transaction on a DB handle and wait for replica DBs to catch up.
output( $out, $channel=null)
Throw some output to the user.
getBatchSize()
Returns batch size.
addDescription( $text)
Set the description text.