Skip to content
Snippets Groups Projects
Commit a6c088a1 authored by Thomas Müller's avatar Thomas Müller
Browse files

adding new config parameter for sqlite to specify the journal mode

parent 6fb2477f
No related branches found
No related tags found
No related merge requests found
......@@ -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() {
......
<?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") {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment