adding new config parameter for sqlite to specify the journal mode
This commit is contained in:
parent
6fb2477fb7
commit
a6c088a1ef
4 changed files with 34 additions and 19 deletions
|
@ -133,6 +133,12 @@ $CONFIG = array(
|
|||
PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
|
||||
),
|
||||
|
||||
/**
|
||||
* sqlite3 journal mode can be specified using this config parameter - can be 'WAL' or 'DELETE'
|
||||
* see for more details https://www.sqlite.org/wal.html
|
||||
*/
|
||||
'sqlite.journal_mode' => 'DELETE',
|
||||
|
||||
/**
|
||||
* Indicates whether the ownCloud instance was installed successfully; ``true``
|
||||
* indicates a successful installation, and ``false`` indicates an unsuccessful
|
||||
|
|
|
@ -90,7 +90,8 @@ class ConnectionFactory {
|
|||
$eventManager->addEventSubscriber(new \Doctrine\DBAL\Event\Listeners\OracleSessionInit);
|
||||
break;
|
||||
case 'sqlite3':
|
||||
$eventManager->addEventSubscriber(new SQLiteSessionInit);
|
||||
$journalMode = $additionalConnectionParams['sqlite.journal_mode'];
|
||||
$eventManager->addEventSubscriber(new SQLiteSessionInit(true, $journalMode));
|
||||
break;
|
||||
}
|
||||
$connection = \Doctrine\DBAL\DriverManager::getConnection(
|
||||
|
@ -153,6 +154,7 @@ class ConnectionFactory {
|
|||
}
|
||||
|
||||
$connectionParams['tablePrefix'] = $config->getSystemValue('dbtableprefix', 'oc_');
|
||||
$connectionParams['sqlite.journal_mode'] = $config->getSystemValue('sqlite.journal_mode', 'WAL');
|
||||
|
||||
//additional driver options, eg. for mysql ssl
|
||||
$driverOptions = $config->getSystemValue('dbdriveroptions', null);
|
||||
|
|
|
@ -18,13 +18,20 @@ class SQLiteSessionInit implements EventSubscriber {
|
|||
*/
|
||||
private $caseSensitiveLike;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $journalMode;
|
||||
|
||||
/**
|
||||
* Configure case sensitive like for each connection
|
||||
*
|
||||
* @param bool $caseSensitiveLike
|
||||
* @param string $journalMode
|
||||
*/
|
||||
public function __construct($caseSensitiveLike = true) {
|
||||
public function __construct($caseSensitiveLike, $journalMode) {
|
||||
$this->caseSensitiveLike = $caseSensitiveLike;
|
||||
$this->journalMode = $journalMode;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -34,6 +41,7 @@ class SQLiteSessionInit implements EventSubscriber {
|
|||
public function postConnect(ConnectionEventArgs $args) {
|
||||
$sensitive = ($this->caseSensitiveLike) ? 'true' : 'false';
|
||||
$args->getConnection()->executeUpdate('PRAGMA case_sensitive_like = ' . $sensitive);
|
||||
$args->getConnection()->executeUpdate('PRAGMA journal_mode = ' . $this->journalMode);
|
||||
}
|
||||
|
||||
public function getSubscribedEvents() {
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
<?php
|
||||
$CONFIG = array (
|
||||
"appstoreenabled" => false,
|
||||
'apps_paths' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'path' => OC::$SERVERROOT.'/apps',
|
||||
'url' => '/apps',
|
||||
'writable' => true,
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'path' => OC::$SERVERROOT.'/apps2',
|
||||
'url' => '/apps2',
|
||||
'writable' => false,
|
||||
)
|
||||
),
|
||||
|
||||
"appstoreenabled" => false,
|
||||
'apps_paths' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'path' => OC::$SERVERROOT.'/apps',
|
||||
'url' => '/apps',
|
||||
'writable' => true,
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'path' => OC::$SERVERROOT.'/apps2',
|
||||
'url' => '/apps2',
|
||||
'writable' => false,
|
||||
)
|
||||
),
|
||||
);
|
||||
|
||||
if(substr(strtolower(PHP_OS), 0, 3) == "win") {
|
||||
|
|
Loading…
Reference in a new issue