The "term" table is removed

This commit is contained in:
Michael 2020-05-15 06:50:20 +00:00
parent f58d42e317
commit 7a82171bfe
8 changed files with 68 additions and 265 deletions

View file

@ -227,31 +227,8 @@ class DBClean {
// The legacy functionality had been removed
DI::config()->set('system', 'finished-dbclean-6', true);
} elseif ($stage == 7) {
$last_id = DI::config()->get('system', 'dbclean-last-id-7', 0);
Logger::log("Deleting orphaned data from term table. Last ID: ".$last_id);
$r = DBA::p("SELECT `oid`, `tid` FROM `term`
WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `term`.`oid`) AND `tid` >= ?
ORDER BY `tid` LIMIT ?", $last_id, $limit);
$count = DBA::numRows($r);
if ($count > 0) {
Logger::log("found term orphans: ".$count);
while ($orphan = DBA::fetch($r)) {
$last_id = $orphan["tid"];
DBA::delete('term', ['oid' => $orphan["oid"]]);
}
Worker::add(PRIORITY_MEDIUM, 'DBClean', 7, $last_id);
} else {
Logger::log("No term orphans found");
}
DBA::close($r);
Logger::log("Done deleting ".$count." orphaned data from term table. Last ID: ".$last_id);
DI::config()->set('system', 'dbclean-last-id-7', $last_id);
if ($count < $limit) {
DI::config()->set('system', 'finished-dbclean-7', true);
}
// The legacy functionality had been removed
DI::config()->set('system', 'finished-dbclean-7', true);
} elseif ($stage == 8) {
if ($days <= 0) {
return;

View file

@ -1,60 +0,0 @@
<?php
/**
* @copyright Copyright (C) 2020, Friendica
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
namespace Friendica\Worker;
use Friendica\Core\Logger;
use Friendica\Database\DBA;
use Friendica\Model\Term;
class TagUpdate
{
public static function execute()
{
$messages = DBA::p("SELECT `oid`,`item`.`guid`, `item`.`created`, `item`.`received` FROM `term` INNER JOIN `item` ON `item`.`id`=`term`.`oid` WHERE `term`.`otype` = 1 AND `term`.`guid` = ''");
Logger::log('fetched messages: ' . DBA::numRows($messages));
while ($message = DBA::fetch($messages)) {
if ($message['uid'] == 0) {
$global = true;
DBA::update('term', ['global' => true], ['otype' => Term::OBJECT_TYPE_POST, 'guid' => $message['guid']]);
} else {
$global = (DBA::count('term', ['uid' => 0, 'otype' => Term::OBJECT_TYPE_POST, 'guid' => $message['guid']]) > 0);
}
$fields = ['guid' => $message['guid'], 'created' => $message['created'],
'received' => $message['received'], 'global' => $global];
DBA::update('term', $fields, ['otype' => Term::OBJECT_TYPE_POST, 'oid' => $message['oid']]);
}
DBA::close($messages);
$messages = DBA::select('item', ['guid'], ['uid' => 0]);
Logger::log('fetched messages: ' . DBA::numRows($messages));
while ($message = DBA::fetch($messages)) {
DBA::update('item', ['global' => true], ['guid' => $message['guid']]);
}
DBA::close($messages);
}
}