PreferencesCommand: Automatically set the resource as config backend

This commit is contained in:
Johannes Meyer 2021-07-27 08:35:46 +02:00
parent 94c6e4a100
commit b298b53fda
1 changed files with 17 additions and 2 deletions

View File

@ -27,6 +27,7 @@ class PreferencesCommand extends Command
* OPTIONS:
*
* --resource=<resource-name> The resource to use, if no current database config backend is configured.
* --no-set-config-backend Do not set the given resource as config backend automatically
*/
public function indexAction()
{
@ -80,8 +81,22 @@ class PreferencesCommand extends Command
if ($rc > 0) {
Logger::error('Failed to migrate some user preferences');
exit($rc);
} else {
Logger::info('Successfully migrated all local user preferences to database');
}
if ($this->params->has('resource') && ! $this->params->has('no-set-config-backend')) {
$appConfig = Config::app();
$globalConfig = $appConfig->getSection('global');
$globalConfig['config_backend'] = 'db';
$globalConfig['config_resource'] = $resource;
try {
$appConfig->saveIni();
} catch (NotWritableError $e) {
Logger::error('Failed to update general configuration: %s', $e->getMessage());
exit(256);
}
}
Logger::info('Successfully migrated all local user preferences to database');
}
}