Merge pull request #8665 from annando/update-vid
Update the "vid" field in the "update" process
This commit is contained in:
commit
aadaf032ee
4 changed files with 49 additions and 4 deletions
|
@ -94,7 +94,7 @@ class Item
|
|||
|
||||
// All fields in the item table
|
||||
const ITEM_FIELDLIST = ['id', 'uid', 'parent', 'uri', 'parent-uri', 'thr-parent',
|
||||
'guid', 'uri-id', 'parent-uri-id', 'thr-parent-id',
|
||||
'guid', 'uri-id', 'parent-uri-id', 'thr-parent-id', 'vid',
|
||||
'contact-id', 'type', 'wall', 'gravity', 'extid', 'icid', 'iaid', 'psid',
|
||||
'created', 'edited', 'commented', 'received', 'changed', 'verb',
|
||||
'postopts', 'plink', 'resource-id', 'event-id', 'attach', 'inform',
|
||||
|
@ -669,7 +669,7 @@ class Item
|
|||
$fields = [];
|
||||
|
||||
$fields['item'] = ['id', 'uid', 'parent', 'uri', 'parent-uri', 'thr-parent',
|
||||
'guid', 'uri-id', 'parent-uri-id', 'thr-parent-id',
|
||||
'guid', 'uri-id', 'parent-uri-id', 'thr-parent-id', 'vid',
|
||||
'contact-id', 'owner-id', 'author-id', 'type', 'wall', 'gravity', 'extid',
|
||||
'created', 'edited', 'commented', 'received', 'changed', 'psid',
|
||||
'resource-id', 'event-id', 'attach', 'post-type', 'file',
|
||||
|
|
|
@ -33,7 +33,7 @@ class Verb
|
|||
* @return integer verb id
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function getID($verb)
|
||||
public static function getID(string $verb)
|
||||
{
|
||||
if (empty($verb)) {
|
||||
return 0;
|
||||
|
@ -48,4 +48,24 @@ class Verb
|
|||
|
||||
return DBA::lastInsertId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return verb name for the given ID
|
||||
*
|
||||
* @param integer $id
|
||||
* @return string verb
|
||||
*/
|
||||
public static function getByID(int $id)
|
||||
{
|
||||
if (empty($id)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$verb_record = DBA::selectFirst('verb', ['name'], ['id' => $id]);
|
||||
if (!DBA::isResult($verb_record)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return $verb_record['name'];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
use Friendica\Database\DBA;
|
||||
|
||||
if (!defined('DB_UPDATE_VERSION')) {
|
||||
define('DB_UPDATE_VERSION', 1348);
|
||||
define('DB_UPDATE_VERSION', 1349);
|
||||
}
|
||||
|
||||
return [
|
||||
|
|
25
update.php
25
update.php
|
@ -474,3 +474,28 @@ function update_1348()
|
|||
|
||||
return Update::SUCCESS;
|
||||
}
|
||||
|
||||
function update_1349()
|
||||
{
|
||||
$correct = true;
|
||||
foreach (Item::ACTIVITIES as $index => $activity) {
|
||||
if (!DBA::exists('verb', ['id' => $index + 1, 'name' => $activity])) {
|
||||
$correct = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$correct) {
|
||||
// The update failed - but it cannot be recovered, since the data doesn't match our expectation
|
||||
// This means that we can't use this "shortcut" to fill the "vid" field and we have to rely upon
|
||||
// the postupdate. This is not fatal, but means that it will take some longer time for the system
|
||||
// to fill all data.
|
||||
return Update::SUCCESS;
|
||||
}
|
||||
|
||||
if (!DBA::e("UPDATE `item` INNER JOIN `item-activity` ON `item`.`uri-id` = `item-activity`.`uri-id`
|
||||
SET `vid` = `item-activity`.`activity` + 1 WHERE `gravity` = ? AND (`vid` IS NULL OR `vid` = 0)", GRAVITY_ACTIVITY)) {
|
||||
return Update::FAILED;
|
||||
}
|
||||
|
||||
return Update::SUCCESS;
|
||||
}
|
Loading…
Reference in a new issue