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
|
// All fields in the item table
|
||||||
const ITEM_FIELDLIST = ['id', 'uid', 'parent', 'uri', 'parent-uri', 'thr-parent',
|
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',
|
'contact-id', 'type', 'wall', 'gravity', 'extid', 'icid', 'iaid', 'psid',
|
||||||
'created', 'edited', 'commented', 'received', 'changed', 'verb',
|
'created', 'edited', 'commented', 'received', 'changed', 'verb',
|
||||||
'postopts', 'plink', 'resource-id', 'event-id', 'attach', 'inform',
|
'postopts', 'plink', 'resource-id', 'event-id', 'attach', 'inform',
|
||||||
|
@ -669,7 +669,7 @@ class Item
|
||||||
$fields = [];
|
$fields = [];
|
||||||
|
|
||||||
$fields['item'] = ['id', 'uid', 'parent', 'uri', 'parent-uri', 'thr-parent',
|
$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',
|
'contact-id', 'owner-id', 'author-id', 'type', 'wall', 'gravity', 'extid',
|
||||||
'created', 'edited', 'commented', 'received', 'changed', 'psid',
|
'created', 'edited', 'commented', 'received', 'changed', 'psid',
|
||||||
'resource-id', 'event-id', 'attach', 'post-type', 'file',
|
'resource-id', 'event-id', 'attach', 'post-type', 'file',
|
||||||
|
|
|
@ -33,7 +33,7 @@ class Verb
|
||||||
* @return integer verb id
|
* @return integer verb id
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public static function getID($verb)
|
public static function getID(string $verb)
|
||||||
{
|
{
|
||||||
if (empty($verb)) {
|
if (empty($verb)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -48,4 +48,24 @@ class Verb
|
||||||
|
|
||||||
return DBA::lastInsertId();
|
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;
|
use Friendica\Database\DBA;
|
||||||
|
|
||||||
if (!defined('DB_UPDATE_VERSION')) {
|
if (!defined('DB_UPDATE_VERSION')) {
|
||||||
define('DB_UPDATE_VERSION', 1348);
|
define('DB_UPDATE_VERSION', 1349);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
25
update.php
25
update.php
|
@ -474,3 +474,28 @@ function update_1348()
|
||||||
|
|
||||||
return Update::SUCCESS;
|
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