Skip to content
Snippets Groups Projects
Commit 56ae4bb6 authored by Robin Appelman's avatar Robin Appelman
Browse files

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
parent 416607e5
Branches
No related tags found
No related merge requests found
......@@ -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,13 +78,20 @@ 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));
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();
}
}
/**
* get the new data array from the old one
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment