diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-03-04 22:26:03 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2013-03-04 22:26:03 +0100 |
commit | 56ae4bb6e9a08c5ada36b4c42ae4e22eaf288df7 (patch) | |
tree | 96aeec07e6d274c1dddc4acfe5c772fe5cc13f4f /lib | |
parent | 416607e559747a88eb42f367f17b70714aa96ef2 (diff) | |
download | nextcloud-server-56ae4bb6e9a08c5ada36b4c42ae4e22eaf288df7.tar.gz nextcloud-server-56ae4bb6e9a08c5ada36b4c42ae4e22eaf288df7.zip |
Cache: also check if the file id is already in the cache during upgrade
Should solve upgrade issues if only some of the configured storages were migrated previously
Diffstat (limited to 'lib')
-rw-r--r-- | lib/files/cache/upgrade.php | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/files/cache/upgrade.php b/lib/files/cache/upgrade.php index 1fe4c584686..4d98abb2f8d 100644 --- a/lib/files/cache/upgrade.php +++ b/lib/files/cache/upgrade.php @@ -64,7 +64,7 @@ class Upgrade { * @param array $data the data for the new cache */ function insert($data) { - if (!$this->inCache($data['storage'], $data['path_hash'])) { + if (!$this->inCache($data['storage'], $data['path_hash'], $data['id'])) { $insertQuery = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache` ( `fileid`, `storage`, `path`, `path_hash`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'); @@ -78,12 +78,19 @@ class Upgrade { /** * @param string $storage * @param string $pathHash + * @param string $id * @return bool */ - function inCache($storage, $pathHash) { + function inCache($storage, $pathHash, $id) { $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?'); $result = $query->execute(array($storage, $pathHash)); - return (bool)$result->fetchRow(); + if ($result->fetchRow()) { + return true; + } else { + $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` = ?'); + $result = $query->execute(array($id)); + return (bool)$result->fetchRow(); + } } /** |