本文整理汇总了PHP中DatabaseUpdater::newForDb方法的典型用法代码示例。如果您正苦于以下问题:PHP DatabaseUpdater::newForDb方法的具体用法?PHP DatabaseUpdater::newForDb怎么用?PHP DatabaseUpdater::newForDb使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DatabaseUpdater
的用法示例。
在下文中一共展示了DatabaseUpdater::newForDb方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
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");
}
示例2: execute
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");
}
示例3: execute
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");
}