diff options
author | Joas Schilling <coding@schilljs.com> | 2022-02-02 15:03:11 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2022-02-03 17:16:03 +0100 |
commit | 76541170bbdc6f2d11bff76430b2ffef44733cca (patch) | |
tree | 0f80a481008bca1773eb73872761811eb1eb285a | |
parent | 2544ab48d4710574f4898991c01ab48c296cafd0 (diff) | |
download | nextcloud-server-76541170bbdc6f2d11bff76430b2ffef44733cca.tar.gz nextcloud-server-76541170bbdc6f2d11bff76430b2ffef44733cca.zip |
Allow specify a config prefix for another database connection
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r-- | lib/private/DB/ConnectionFactory.php | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/private/DB/ConnectionFactory.php b/lib/private/DB/ConnectionFactory.php index e9ed5979894..95f3185bcdb 100644 --- a/lib/private/DB/ConnectionFactory.php +++ b/lib/private/DB/ConnectionFactory.php @@ -189,22 +189,23 @@ class ConnectionFactory { /** * Create the connection parameters for the config * + * @param string $configPrefix * @return array */ - public function createConnectionParams() { + public function createConnectionParams(string $configPrefix = '') { $type = $this->config->getValue('dbtype', 'sqlite'); $connectionParams = [ - 'user' => $this->config->getValue('dbuser', ''), - 'password' => $this->config->getValue('dbpassword', ''), + 'user' => $this->config->getValue($configPrefix . 'dbuser', $this->config->getValue('dbuser', '')), + 'password' => $this->config->getValue($configPrefix . 'dbpassword', $this->config->getValue('dbpassword', '')), ]; - $name = $this->config->getValue('dbname', self::DEFAULT_DBNAME); + $name = $this->config->getValue($configPrefix . 'dbname', $this->config->getValue('dbname', self::DEFAULT_DBNAME)); if ($this->normalizeType($type) === 'sqlite3') { $dataDir = $this->config->getValue("datadirectory", \OC::$SERVERROOT . '/data'); $connectionParams['path'] = $dataDir . '/' . $name . '.db'; } else { - $host = $this->config->getValue('dbhost', ''); + $host = $this->config->getValue($configPrefix . 'dbhost', $this->config->getValue('dbhost', '')); $connectionParams = array_merge($connectionParams, $this->splitHostFromPortAndSocket($host)); $connectionParams['dbname'] = $name; } @@ -213,7 +214,7 @@ class ConnectionFactory { $connectionParams['sqlite.journal_mode'] = $this->config->getValue('sqlite.journal_mode', 'WAL'); //additional driver options, eg. for mysql ssl - $driverOptions = $this->config->getValue('dbdriveroptions', null); + $driverOptions = $this->config->getValue($configPrefix . 'dbdriveroptions', $this->config->getValue('dbdriveroptions', null)); if ($driverOptions) { $connectionParams['driverOptions'] = $driverOptions; } |