diff --git a/extension/Classes/Core/Helper/OnArray.php b/extension/Classes/Core/Helper/OnArray.php index 18def73c29e67922455a8a33acb1ed595dfc626d..5a13cee872c741cc01fc62b5efef59bc3fb4953d 100644 --- a/extension/Classes/Core/Helper/OnArray.php +++ b/extension/Classes/Core/Helper/OnArray.php @@ -462,4 +462,23 @@ class OnArray { { return array_filter($keys, function($key) use ($array) {return !isset($array[$key]);}); } + + /** + * Rename keys according to the associative array given as first argument (only if the key exists). + * Return changed array. + * + * @param array $renameMap old-key => new-key + * @param array $array + * @param bool $overwrite overwrite value from existing new-key with value of old-key + * @return array + */ + public static function renameKeys(array $renameMap, array $array, bool $overwrite = false) { + foreach ($renameMap as $keyOld => $keyNew) { + if (isset($array[$keyOld]) && (!isset($array[$keyNew]) || $overwrite)) { + $array[$keyNew] = $array[$keyOld]; + unset($array[$keyOld]); + } + } + return $array; + } } \ No newline at end of file diff --git a/extension/Classes/Core/Store/Config.php b/extension/Classes/Core/Store/Config.php index a9139375af9261571c3f02ff9cc9cb3b6ffa3617..79d14545b2e567902a449366dc32a371c7e5d9b6 100644 --- a/extension/Classes/Core/Store/Config.php +++ b/extension/Classes/Core/Store/Config.php @@ -11,6 +11,7 @@ namespace IMATHUZH\Qfq\Core\Store; use IMATHUZH\Qfq\Core\Exception\Thrower; use IMATHUZH\Qfq\Core\Helper\HelperFile; use IMATHUZH\Qfq\Core\Helper\Logger; +use IMATHUZH\Qfq\Core\Helper\OnArray; use IMATHUZH\Qfq\Core\Helper\Path; use IMATHUZH\Qfq\Core\Helper\Support; use IMATHUZH\Qfq\Core\Helper\OnString; @@ -172,6 +173,14 @@ class Config { HelperFile::enforce_writable($cwdToOldConfigFile); // so we can delete it. $config = include($cwdToOldConfigFile); + // In case the database credentials are given in the old style: rename the keys + $config = OnArray::renameKeys([ + SYSTEM_DB_USER => SYSTEM_DB_1_USER, + SYSTEM_DB_SERVER => SYSTEM_DB_1_SERVER, + SYSTEM_DB_PASSWORD => SYSTEM_DB_1_PASSWORD, + SYSTEM_DB_NAME => SYSTEM_DB_1_NAME + ], $config); + // write new qfq.config.json self::writeConfig($config);