function execute() { global $wgVersion, $wgTitle, $wgLang; $wgLang = Language::factory('en'); $wgTitle = Title::newFromText("MediaWiki database updater"); $this->output("MediaWiki {$wgVersion} Updater\n\n"); if (!$this->hasOption('skip-compat-checks')) { $this->compatChecks(); } else { $this->output("Skipping compatibility checks, proceed at your own risk (Ctrl+C to abort)\n"); wfCountdown(5); } # Attempt to connect to the database as a privileged user # This will vomit up an error if there are permissions problems $db = wfGetDB(DB_MASTER); $this->output("Going to run database updates for " . wfWikiID() . "\n"); $this->output("Depending on the size of your database this may take a while!\n"); if (!$this->hasOption('quick')) { $this->output("Abort with control-c in the next five seconds (skip this countdown with --quick) ... "); wfCountDown(5); } $shared = $this->hasOption('doshared'); $updates = array('core', 'extensions'); if (!$this->hasOption('nopurge')) { $updates[] = 'purge'; } $updater = DatabaseUpdater::newForDb($db, $shared, $this); $updater->doUpdates($updates); foreach ($updater->getPostDatabaseUpdateMaintenance() as $maint) { $child = $this->runChild($maint); $child->execute(); } $this->output("\nDone.\n"); }
function execute() { global $wgVersion, $wgLang, $wgAllowSchemaUpdates; if (!$wgAllowSchemaUpdates && !($this->hasOption('force') || $this->hasOption('schema') || $this->hasOption('noschema'))) { $this->error("Do not run update.php on this wiki. If you're seeing this you should\n" . "probably ask for some help in performing your schema updates or use\n" . "the --noschema and --schema options to get an SQL file for someone\n" . "else to inspect and run.\n\n" . "If you know what you are doing, you can continue with --force\n", true); } $this->fileHandle = null; if (substr($this->getOption('schema'), 0, 2) === "--") { $this->error("The --schema option requires a file as an argument.\n", true); } elseif ($this->hasOption('schema')) { $file = $this->getOption('schema'); $this->fileHandle = fopen($file, "w"); if ($this->fileHandle === false) { $err = error_get_last(); $this->error("Problem opening the schema file for writing: {$file}\n\t{$err['message']}", true); } } $wgLang = Language::factory('en'); define('MW_UPDATER', true); $this->output("MediaWiki {$wgVersion} Updater\n\n"); wfWaitForSlaves(); if (!$this->hasOption('skip-compat-checks')) { $this->compatChecks(); } else { $this->output("Skipping compatibility checks, proceed at your own risk (Ctrl+C to abort)\n"); wfCountdown(5); } // Check external dependencies are up to date if (!$this->hasOption('skip-external-dependencies')) { $composerLockUpToDate = $this->runChild('CheckComposerLockUpToDate'); $composerLockUpToDate->execute(); } else { $this->output("Skipping checking whether external dependencies are up to date, proceed at your own risk\n"); } # Attempt to connect to the database as a privileged user # This will vomit up an error if there are permissions problems $db = $this->getDB(DB_MASTER); $this->output("Going to run database updates for " . wfWikiID() . "\n"); if ($db->getType() === 'sqlite') { $this->output("Using SQLite file: '{$db->getDbFilePath()}'\n"); } $this->output("Depending on the size of your database this may take a while!\n"); if (!$this->hasOption('quick')) { $this->output("Abort with control-c in the next five seconds " . "(skip this countdown with --quick) ... "); wfCountDown(5); } $time1 = microtime(true); $shared = $this->hasOption('doshared'); $updates = array('core', 'extensions'); if (!$this->hasOption('schema')) { if ($this->hasOption('noschema')) { $updates[] = 'noschema'; } $updates[] = 'stats'; } $updater = DatabaseUpdater::newForDb($db, $shared, $this); $updater->doUpdates($updates); foreach ($updater->getPostDatabaseUpdateMaintenance() as $maint) { $child = $this->runChild($maint); // LoggedUpdateMaintenance is checking the updatelog itself $isLoggedUpdate = $child instanceof LoggedUpdateMaintenance; if (!$isLoggedUpdate && $updater->updateRowExists($maint)) { continue; } $child->execute(); if (!$isLoggedUpdate) { $updater->insertUpdateRow($maint); } } $updater->setFileAccess(); if (!$this->hasOption('nopurge')) { $updater->purgeCache(); } $time2 = microtime(true); $timeDiff = $wgLang->formatTimePeriod($time2 - $time1); $this->output("\nDone in {$timeDiff}.\n"); }
function execute() { global $wgVersion, $wgTitle, $wgLang, $wgAllowSchemaUpdates; if (!$wgAllowSchemaUpdates && !$this->hasOption('force')) { $this->error("Do not run update.php on this wiki. If you're seeing this you should\n" . "probably ask for some help in performing your schema updates.\n\n" . "If you know what you are doing, you can continue with --force", true); } $wgLang = Language::factory('en'); $wgTitle = Title::newFromText("MediaWiki database updater"); $this->output("MediaWiki {$wgVersion} Updater\n\n"); wfWaitForSlaves(5); // let's not kill databases, shall we? ;) --tor if (!$this->hasOption('skip-compat-checks')) { $this->compatChecks(); } else { $this->output("Skipping compatibility checks, proceed at your own risk (Ctrl+C to abort)\n"); wfCountdown(5); } # Attempt to connect to the database as a privileged user # This will vomit up an error if there are permissions problems $db = wfGetDB(DB_MASTER); $this->output("Going to run database updates for " . wfWikiID() . "\n"); $this->output("Depending on the size of your database this may take a while!\n"); if (!$this->hasOption('quick')) { $this->output("Abort with control-c in the next five seconds (skip this countdown with --quick) ... "); wfCountDown(5); } $shared = $this->hasOption('doshared'); $updates = array('core', 'extensions', 'stats'); if (!$this->hasOption('nopurge')) { $updates[] = 'purge'; } $updater = DatabaseUpdater::newForDb($db, $shared, $this); $updater->doUpdates($updates); foreach ($updater->getPostDatabaseUpdateMaintenance() as $maint) { if ($updater->updateRowExists($maint)) { continue; } $child = $this->runChild($maint); $child->execute(); $updater->insertUpdateRow($maint); } $this->output("\nDone.\n"); }