aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2022-02-02 15:03:11 +0100
committerJoas Schilling <coding@schilljs.com>2022-02-03 17:16:03 +0100
commit76541170bbdc6f2d11bff76430b2ffef44733cca (patch)
tree0f80a481008bca1773eb73872761811eb1eb285a
parent2544ab48d4710574f4898991c01ab48c296cafd0 (diff)
downloadnextcloud-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.php13
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;
}