mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 14:52:41 +01:00
Provide a "-f" flag to scripts/sql/upgrade_schema.php
Summary: Normally this gives you a prompt about taking down services, provide a noninteractive mode for scripting the upgrade process. Also drop a generally bad/confusing/irrelevant piece of advice from the documentation and replace it with information about -f. Test Plan: Ran with and without -f. Ran with -h. Reviewers: moskov, tuomaspelkonen, jungejason, aran CC: Differential Revision: 387
This commit is contained in:
parent
df2cbf1d29
commit
9df13b7e28
2 changed files with 31 additions and 19 deletions
|
@ -26,23 +26,34 @@ phutil_require_module('phabricator', 'infrastructure/setup/sql');
|
||||||
|
|
||||||
define('SCHEMA_VERSION_TABLE_NAME', 'schema_version');
|
define('SCHEMA_VERSION_TABLE_NAME', 'schema_version');
|
||||||
|
|
||||||
$options = getopt('v:u:p:') + array(
|
// TODO: getopt() is super terrible, move to something less terrible.
|
||||||
'v' => null,
|
$options = getopt('fhv:u:p:') + array(
|
||||||
'u' => null,
|
'v' => null, // Upgrade from specific version
|
||||||
'p' => null,
|
'u' => null, // Override MySQL User
|
||||||
|
'p' => null, // Override MySQL Pass
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($options['v'] && !is_numeric($options['v'])) {
|
foreach (array('h', 'f') as $key) {
|
||||||
|
// By default, these keys are set to 'false' to indicate that the flag was
|
||||||
|
// passed.
|
||||||
|
if (array_key_exists($key, $options)) {
|
||||||
|
$options[$key] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($options['h']) || ($options['v'] && !is_numeric($options['v']))) {
|
||||||
usage();
|
usage();
|
||||||
}
|
}
|
||||||
|
|
||||||
echo phutil_console_wrap(
|
if (empty($options['f'])) {
|
||||||
|
echo phutil_console_wrap(
|
||||||
"Before running this script, you should take down the Phabricator web ".
|
"Before running this script, you should take down the Phabricator web ".
|
||||||
"interface and stop any running Phabricator daemons.");
|
"interface and stop any running Phabricator daemons.");
|
||||||
|
|
||||||
if (!phutil_console_confirm('Are you ready to continue?')) {
|
if (!phutil_console_confirm('Are you ready to continue?')) {
|
||||||
echo "Cancelled.\n";
|
echo "Cancelled.\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use always the version from the commandline if it is defined
|
// Use always the version from the commandline if it is defined
|
||||||
|
@ -153,12 +164,14 @@ END;
|
||||||
|
|
||||||
function usage() {
|
function usage() {
|
||||||
echo
|
echo
|
||||||
"usage: upgrade_schema.php [-v version] [-u user -p pass]".
|
"usage: upgrade_schema.php [-v version] [-u user -p pass] [-f] [-h]".
|
||||||
"\n\n".
|
"\n\n".
|
||||||
"Run 'upgrade_schema.php -v 12' to apply all patches starting from ".
|
|
||||||
"version 12.\n".
|
|
||||||
"Run 'upgrade_schema.php -u root -p hunter2' to override the configured ".
|
"Run 'upgrade_schema.php -u root -p hunter2' to override the configured ".
|
||||||
"default user.\n";
|
"default user.\n".
|
||||||
|
"Run 'upgrade_schema.php -v 12' to apply all patches starting from ".
|
||||||
|
"version 12. It is very unlikely you need to do this.\n".
|
||||||
|
"Use the -f flag to upgrade noninteractively, without prompting.\n".
|
||||||
|
"Use the -h flag to show this help.\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,7 @@ root or some other admin user:
|
||||||
|
|
||||||
PHABRICATOR_ENV=<your_config> path/to/phabricator/scripts/sql/upgrade_schema.php -u <user> -p <pass>
|
PHABRICATOR_ENV=<your_config> path/to/phabricator/scripts/sql/upgrade_schema.php -u <user> -p <pass>
|
||||||
|
|
||||||
If you need to upgrade the schema starting from a specific patch, just run:
|
You can avoid the prompt the script issues by passing the ##-f## flag (for
|
||||||
|
example, if you are scripting the upgrade process).
|
||||||
|
|
||||||
PHABRICATOR_ENV=<your_config> path/to/phabricator/scripts/sql/upgrade_schema.php -v <patch_number>
|
PHABRICATOR_ENV=<your_config> path/to/phabricator/scripts/sql/upgrade_schema.php -f
|
||||||
|
|
||||||
However, this isn't usually needed and could be dangerous!
|
|
||||||
|
|
Loading…
Reference in a new issue