summaryrefslogtreecommitdiffstats
path: root/apps/encryption/lib
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2015-07-30 15:43:15 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2015-07-31 10:47:02 +0200
commit2f4bebb045be8605742ed566b07dfcbf4be1fde8 (patch)
tree3873337331dc6a562f96c03ab945d1203382aa20 /apps/encryption/lib
parent80810ae10fc7ea40a8ffe1c6f4672f5f2096f402 (diff)
downloadnextcloud-server-2f4bebb045be8605742ed566b07dfcbf4be1fde8.tar.gz
nextcloud-server-2f4bebb045be8605742ed566b07dfcbf4be1fde8.zip
only update database on the first run (first run = we have a version number from the old encryption app)
Diffstat (limited to 'apps/encryption/lib')
-rw-r--r--apps/encryption/lib/migration.php26
1 files changed, 19 insertions, 7 deletions
diff --git a/apps/encryption/lib/migration.php b/apps/encryption/lib/migration.php
index 789f5f77757..d22c571fd40 100644
--- a/apps/encryption/lib/migration.php
+++ b/apps/encryption/lib/migration.php
@@ -37,9 +37,10 @@ class Migration {
private $connection;
/** @var IConfig */
private $config;
-
/** @var ILogger */
private $logger;
+ /** @var string*/
+ protected $installedVersion;
/**
* @param IConfig $config
@@ -54,6 +55,7 @@ class Migration {
$this->moduleId = \OCA\Encryption\Crypto\Encryption::ID;
$this->config = $config;
$this->logger = $logger;
+ $this->installedVersion = $this->config->getAppValue('files_encryption', 'installed_version', '-1');
}
public function finalCleanUp() {
@@ -66,12 +68,16 @@ class Migration {
* update file cache, copy unencrypted_size to the 'size' column
*/
private function updateFileCache() {
- $query = $this->connection->getQueryBuilder();
- $query->update('*PREFIX*filecache')
- ->set('size', 'unencrypted_size')
- ->where($query->expr()->eq('encrypted', $query->createParameter('encrypted')))
- ->setParameter('encrypted', 1);
- $query->execute();
+ // make sure that we don't update the file cache multiple times
+ // only update during the first run
+ if ($this->installedVersion !== '-1') {
+ $query = $this->connection->getQueryBuilder();
+ $query->update('*PREFIX*filecache')
+ ->set('size', 'unencrypted_size')
+ ->where($query->expr()->eq('encrypted', $query->createParameter('encrypted')))
+ ->setParameter('encrypted', 1);
+ $query->execute();
+ }
}
/**
@@ -144,6 +150,12 @@ class Migration {
*/
public function updateDB() {
+ // make sure that we don't update the file cache multiple times
+ // only update during the first run
+ if ($this->installedVersion === '-1') {
+ return;
+ }
+
// delete left-over from old encryption which is no longer needed
$this->config->deleteAppValue('files_encryption', 'ocsid');
$this->config->deleteAppValue('files_encryption', 'types');