X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=update.php;h=285252770a36090e3930655a299db8f43b2507d0;hb=974f7bffc82d024a38b4709c6b250677a217f65a;hp=460fad885c15b780ea05c2be16fe4aaf60237bd5;hpb=a69c98e32fc5ce8d5247111a8ab6c30d6c3970f5;p=friendica.git diff --git a/update.php b/update.php index 460fad885c..285252770a 100644 --- a/update.php +++ b/update.php @@ -44,11 +44,13 @@ use Friendica\Core\Addon; use Friendica\Core\Logger; use Friendica\Core\Update; use Friendica\Core\Worker; +use Friendica\Database\Database; use Friendica\Database\DBA; use Friendica\Database\DBStructure; use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\Item; +use Friendica\Model\Notify; use Friendica\Model\Photo; use Friendica\Model\User; use Friendica\Model\Storage; @@ -429,7 +431,7 @@ function update_1332() function update_1347() { foreach (Item::ACTIVITIES as $index => $activity) { - DBA::insert('verb', ['id' => $index + 1, 'name' => $activity], true); + DBA::insert('verb', ['id' => $index + 1, 'name' => $activity], Database::INSERT_IGNORE); } return Update::SUCCESS; @@ -758,3 +760,115 @@ function update_1375() return Update::SUCCESS; } + +function pre_update_1376() +{ + // Insert a user with uid=0 + DBStructure::checkInitialValues(); + + if (!DBA::e("DELETE FROM `item` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `event` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `thread` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `permissionset` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `openwebauth-token` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `post-category` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + Photo::delete(["NOT `uid` IN (SELECT `uid` FROM `user`)"]); + + if (!DBA::e("DELETE FROM `contact` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function pre_update_1377() +{ + DBStructure::checkInitialValues(); + + if (!DBA::e("DELETE FROM `item` WHERE NOT `author-id` IN (SELECT `id` FROM `contact`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `item` WHERE NOT `owner-id` IN (SELECT `id` FROM `contact`)")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `item` SET `contact-id` = `owner-id` WHERE NOT `contact-id` IN (SELECT `id` FROM `contact`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `thread` WHERE NOT `author-id` IN (SELECT `id` FROM `contact`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `thread` WHERE NOT `owner-id` IN (SELECT `id` FROM `contact`)")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `thread` SET `contact-id` = `owner-id` WHERE NOT `contact-id` IN (SELECT `id` FROM `contact`)")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `notify` SET `uri-id` = NULL WHERE `uri-id` = 0")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `notify` WHERE `uri-id` NOT IN (SELECT `id` FROM `item-uri`)")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `notify` SET `parent-uri-id` = NULL WHERE `parent-uri-id` = 0")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `notify` WHERE `parent-uri-id` NOT IN (SELECT `id` FROM `item-uri`)")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `notify-threads` SET `master-parent-uri-id` = NULL WHERE `master-parent-uri-id` = 0")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `notify-threads` WHERE `master-parent-uri-id` NOT IN (SELECT `id` FROM `item-uri`)")) { + return Update::FAILED; + } + + if (!DBA::e("DELETE FROM `notify-threads` WHERE `master-parent-item` NOT IN (SELECT `id` FROM `item`)")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function update_1380() +{ + if (!DBA::e("UPDATE `notify` INNER JOIN `item` ON `item`.`id` = `notify`.`iid` SET `notify`.`uri-id` = `item`.`uri-id` WHERE `notify`.`uri-id` IS NULL AND `notify`.`otype` IN (?, ?)", + Notify\ObjectType::ITEM, Notify\ObjectType::PERSON)) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `notify` INNER JOIN `item` ON `item`.`id` = `notify`.`parent` SET `notify`.`parent-uri-id` = `item`.`uri-id` WHERE `notify`.`parent-uri-id` IS NULL AND `notify`.`otype` IN (?, ?)", + Notify\ObjectType::ITEM, Notify\ObjectType::PERSON)) { + return Update::FAILED; + } + + return Update::SUCCESS; +}