mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-30 10:42:41 +01:00
Improve STRICT_ALL_TABLES warning
Summary: - Make the warning describe rationale and point at the MySQL manual explicitly. - Add a reference to the developer mode config, in case the user wants to resolve the probelm by disabling developer mode. - Now that the message is huge, provide a summary. - Move from "Database" to "MySQL" setup checks -- this is kind of arbitrary, but the former is used for fatals (pre-install) and the latter for warnings (post-install) right now. This has no practical impact on anything and is purely stylistic. Test Plan: {F31798} {F31799} Reviewers: edward, blc Reviewed By: edward CC: aran Differential Revision: https://secure.phabricator.com/D4835
This commit is contained in:
parent
84efcb8669
commit
e518135dfb
2 changed files with 25 additions and 14 deletions
|
@ -65,20 +65,6 @@ final class PhabricatorSetupCheckDatabase extends PhabricatorSetupCheck {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PhabricatorEnv::getEnvConfig('phabricator.developer-mode')) {
|
|
||||||
$mode_string = queryfx_one($conn_raw, "SELECT @@sql_mode");
|
|
||||||
$modes = explode(',', $mode_string['@@sql_mode']);
|
|
||||||
if (!in_array('STRICT_ALL_TABLES', $modes)) {
|
|
||||||
$message = pht(
|
|
||||||
"The global sql_mode is not set to 'STRICT_ALL_TABLES'. It is ".
|
|
||||||
"recommended that you set this mode while developing Phabricator.");
|
|
||||||
|
|
||||||
$this->newIssue('mysql.mode')
|
|
||||||
->setName(pht('MySQL STRICT_ALL_TABLES mode not set.'))
|
|
||||||
->setMessage($message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$namespace = PhabricatorEnv::getEnvConfig('storage.default-namespace');
|
$namespace = PhabricatorEnv::getEnvConfig('storage.default-namespace');
|
||||||
|
|
||||||
$databases = queryfx_all($conn_raw, 'SHOW DATABASES');
|
$databases = queryfx_all($conn_raw, 'SHOW DATABASES');
|
||||||
|
|
|
@ -24,6 +24,31 @@ final class PhabricatorSetupCheckMySQL extends PhabricatorSetupCheck {
|
||||||
->setName(pht('Small MySQL "max_allowed_packet"'))
|
->setName(pht('Small MySQL "max_allowed_packet"'))
|
||||||
->setMessage($message);
|
->setMessage($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (PhabricatorEnv::getEnvConfig('phabricator.developer-mode')) {
|
||||||
|
$mode_string = queryfx_one($conn_raw, "SELECT @@sql_mode");
|
||||||
|
$modes = explode(',', $mode_string['@@sql_mode']);
|
||||||
|
if (!in_array('STRICT_ALL_TABLES', $modes)) {
|
||||||
|
$summary = pht(
|
||||||
|
"MySQL is not in strict mode, but should be for Phabricator ".
|
||||||
|
"development.");
|
||||||
|
|
||||||
|
$message = pht(
|
||||||
|
"This install is in developer mode, but the global sql_mode is not ".
|
||||||
|
"set to 'STRICT_ALL_TABLES'. It is recommended that you set this ".
|
||||||
|
"mode while developing Phabricator. Strict mode will promote some ".
|
||||||
|
"query warnings to errors, and ensure you don't miss them during ".
|
||||||
|
"development. You can find more information about this mode (and ".
|
||||||
|
"how to configure it) in the MySQL manual.");
|
||||||
|
|
||||||
|
$this->newIssue('mysql.mode')
|
||||||
|
->setName(pht('MySQL STRICT_ALL_TABLES Mode Not Set'))
|
||||||
|
->addPhabricatorConfig('phabricator.developer-mode')
|
||||||
|
->setSummary($summary)
|
||||||
|
->setMessage($message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue