X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=update.php;h=48d44813b15f23d58634bc22fab494f574abeddf;hb=eeda115e32a9798116cfa506d4bc23a744d8a9ac;hp=be1890b7070abf725a2b7db1c53d1da32c6512df;hpb=7f55e1b2bc64ea947d61523972a5fc9ec74836e3;p=friendica.git diff --git a/update.php b/update.php index be1890b707..48d44813b1 100644 --- a/update.php +++ b/update.php @@ -70,7 +70,8 @@ function update_1181() { // Fill the new fields in the term table. - Worker::add(PRIORITY_LOW, "TagUpdate"); + // deactivated, the "term" table is deprecated + // Worker::add(PRIORITY_LOW, "TagUpdate"); return Update::SUCCESS; } @@ -434,26 +435,67 @@ function update_1347() function pre_update_1348() { - DBA::insert('contact', ['nurl' => '']); - DBA::update('contact', ['id' => 0], ['id' => DBA::lastInsertId()]); + if (!DBA::exists('contact', ['id' => 0])) { + DBA::insert('contact', ['nurl' => '']); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('contact', ['id' => 0], ['id' => $lastid]); + } + } // The tables "permissionset" and "tag" could or could not exist during the update. // This depends upon the previous version. Depending upon this situation we have to add // the "0" values before adding the foreign keys - or after would be sufficient. update_1348(); + + return Update::SUCCESS; } function update_1348() { // Insert a permissionset with id=0 - // Setting it to -1 and then changing the value to 0 tricks the auto increment - DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); - DBA::update('permissionset', ['id' => 0], ['id' => DBA::lastInsertId()]); + // Inserting it without an ID and then changing the value to 0 tricks the auto increment + if (!DBA::exists('permissionset', ['id' => 0])) { + DBA::insert('permissionset', ['allow_cid' => '', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '']); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('permissionset', ['id' => 0], ['id' => $lastid]); + } + } - DBA::insert('tag', ['name' => '']); - DBA::update('tag', ['id' => 0], ['id' => DBA::lastInsertId()]); + if (!DBA::exists('tag', ['id' => 0])) { + DBA::insert('tag', ['name' => '']); + $lastid = DBA::lastInsertId(); + if ($lastid != 0) { + DBA::update('tag', ['id' => 0], ['id' => $lastid]); + } + } - // to-do: Tag / contact 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; +} \ No newline at end of file