[Pkg-owncloud-commits] [owncloud] 20/61: generate copy of sqlite database file in data directory

David Prévot taffit at moszumanska.debian.org
Thu Jul 31 03:51:42 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 51cbe2a0ee77529799817d5843a02bb5169751e6
Author: Thomas Müller <thomas.mueller at tmit.eu>
Date:   Mon Jul 28 10:29:39 2014 +0200

    generate copy of sqlite database file in data directory
---
 lib/private/db/mdb2schemamanager.php |  3 ++-
 lib/private/db/sqlitemigrator.php    | 26 +++++++++++++++++++++++++-
 2 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/lib/private/db/mdb2schemamanager.php b/lib/private/db/mdb2schemamanager.php
index d3e379c..91e590a 100644
--- a/lib/private/db/mdb2schemamanager.php
+++ b/lib/private/db/mdb2schemamanager.php
@@ -59,7 +59,8 @@ class MDB2SchemaManager {
 	public function getMigrator() {
 		$platform = $this->conn->getDatabasePlatform();
 		if ($platform instanceof SqlitePlatform) {
-			return new SQLiteMigrator($this->conn);
+			$config = \OC::$server->getConfig();
+			return new SQLiteMigrator($this->conn, $config);
 		} else if ($platform instanceof OraclePlatform) {
 			return new OracleMigrator($this->conn);
 		} else if ($platform instanceof MySqlPlatform) {
diff --git a/lib/private/db/sqlitemigrator.php b/lib/private/db/sqlitemigrator.php
index f5f7898..81bbcb5 100644
--- a/lib/private/db/sqlitemigrator.php
+++ b/lib/private/db/sqlitemigrator.php
@@ -11,6 +11,21 @@ namespace OC\DB;
 use Doctrine\DBAL\DBALException;
 
 class SQLiteMigrator extends Migrator {
+
+	/**
+	 * @var \OCP\IConfig
+	 */
+	private $config;
+
+	/**
+	 * @param \Doctrine\DBAL\Connection $connection
+	 * @param \OCP\IConfig $config
+	 */
+	public function __construct(\Doctrine\DBAL\Connection $connection, \OCP\IConfig $config) {
+		parent::__construct($connection);
+		$this->config = $config;
+	}
+
 	/**
 	 * @param \Doctrine\DBAL\Schema\Schema $targetSchema
 	 * @throws \OC\DB\MigrationException
@@ -19,7 +34,7 @@ class SQLiteMigrator extends Migrator {
 	 */
 	public function checkMigrate(\Doctrine\DBAL\Schema\Schema $targetSchema) {
 		$dbFile = $this->connection->getDatabase();
-		$tmpFile = \OC_Helper::tmpFile('.db');
+		$tmpFile = $this->buildTempDatabase();
 		copy($dbFile, $tmpFile);
 
 		$connectionParams = array(
@@ -37,4 +52,13 @@ class SQLiteMigrator extends Migrator {
 			throw new MigrationException('', $e->getMessage());
 		}
 	}
+
+	/**
+	 * @return string
+	 */
+	private function buildTempDatabase() {
+		$dataDir = $this->config->getSystemValue("datadirectory", \OC::$SERVERROOT . '/data');
+		$tmpFile = uniqid("oc_");
+		return "$dataDir/$tmpFile.db";
+	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list