ソースを参照

Allow specify a config prefix for another database connection

Signed-off-by: Joas Schilling <coding@schilljs.com>
tags/v24.0.0beta1
Joas Schilling 2年前
コミット
76541170bb
コミッターのメールアドレスに関連付けられたアカウントが存在しません
1個のファイルの変更7行の追加6行の削除
  1. 7
    6
      lib/private/DB/ConnectionFactory.php

+ 7
- 6
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;
}

読み込み中…
キャンセル
保存