clean up oc_share table from files which are no longer exists

remotes/origin/stable6
Bjoern Schiessle 2013-10-07 10:59:09 +07:00
parent 401740166b
commit 0346167bb2
2 changed files with 17 additions and 7 deletions

@ -68,11 +68,21 @@ if (version_compare($installedVersion, '0.3', '<')) {
// $query = OCP\DB::prepare('DROP TABLE `*PREFIX*sharing`');
// $query->execute();
}
if (version_compare($installedVersion, '0.3.3', '<')) {
OC_User::useBackend(new OC_User_Database());
OC_App::loadApps(array('authentication'));
$users = OC_User::getUsers();
foreach ($users as $user) {
// OC_FileCache::delete('Shared', '/'.$user.'/files/');
// clean up oc_share table from files which are no longer exists
if (version_compare($installedVersion, '0.3.4', '<')) {
// get all shares where the original file no longer exists
$findShares = \OC_DB::prepare('SELECT `file_source` FROM `*PREFIX*share` LEFT JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` WHERE `*PREFIX*filecache`.`fileid` IS NULL');
$sharesFound = $findShares->execute(array())->fetchAll();
// delete those shares from the oc_share table
if (is_array($sharesFound) && !empty($sharesFound)) {
$delArray = array();
foreach ($sharesFound as $share) {
$delArray[] = $share['file_source'];
}
$removeShares = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `file_source` IN (?)');
$result = $removeShares->execute(array(implode(',', $delArray)));
}
}