setup(); // We used to call this variable $self, but it was moved // to $maintenance->mSelf. Keep that here for b/c $self = $maintenance->getName(); // Define how settings are loaded (e.g. LocalSettings.php) if ( !defined( 'MW_CONFIG_CALLBACK' ) && !defined( 'MW_CONFIG_FILE' ) ) { define( 'MW_CONFIG_FILE', $maintenance->loadSettings() ); } // Custom setup for Maintenance entry point if ( !defined( 'MW_SETUP_CALLBACK' ) ) { function wfMaintenanceSetup() { // phpcs:ignore MediaWiki.NamingConventions.ValidGlobalName.wgPrefix global $maintenance, $wgLocalisationCacheConf, $wgCacheDirectory; if ( $maintenance->getDbType() === Maintenance::DB_NONE ) { if ( $wgLocalisationCacheConf['storeClass'] === false && ( $wgLocalisationCacheConf['store'] == 'db' || ( $wgLocalisationCacheConf['store'] == 'detect' && !$wgCacheDirectory ) ) ) { $wgLocalisationCacheConf['storeClass'] = LCStoreNull::class; } } $maintenance->finalSetup(); } define( 'MW_SETUP_CALLBACK', 'wfMaintenanceSetup' ); } require_once "$IP/includes/Setup.php"; // Initialize main config instance $maintenance->setConfig( MediaWikiServices::getInstance()->getMainConfig() ); // Sanity-check required extensions are installed $maintenance->checkRequiredExtensions(); // A good time when no DBs have writes pending is around lag checks. // This avoids having long running scripts just OOM and lose all the updates. $maintenance->setAgentAndTriggers(); // Do the work $maintenance->execute(); // Potentially debug globals $maintenance->globals(); if ( $maintenance->getDbType() !== Maintenance::DB_NONE ) { // Perform deferred updates. $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory(); $lbFactory->commitMasterChanges( $maintClass ); DeferredUpdates::doUpdates(); } // log profiling info wfLogProfilingData(); if ( isset( $lbFactory ) ) { // Commit and close up! $lbFactory->commitMasterChanges( 'doMaintenance' ); $lbFactory->shutdown( $lbFactory::SHUTDOWN_NO_CHRONPROT ); }