X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=update.php;h=819085f7ff2f5c6f1342d4f36c3a9e851997b039;hb=28c9bc871c12d25dd4112acd822e5ed92b1d5fcd;hp=1d4fd38438d203b16592bf126e8f07a80cb9dc6b;hpb=a7b07b6e2ea43134e670ca4a7959d0f25dff85b3;p=friendica.git diff --git a/update.php b/update.php index 1d4fd38438..819085f7ff 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ $activity) { if (!DBA::exists('verb', ['id' => $index + 1, 'name' => $activity])) { @@ -291,7 +295,7 @@ function update_1349() function update_1351() { - if (!DBA::e("UPDATE `thread` INNER JOIN `item` ON `thread`.`iid` = `item`.`id` SET `thread`.`uri-id` = `item`.`uri-id`")) { + if (DBStructure::existsTable('thread') && !DBA::e("UPDATE `thread` INNER JOIN `item` ON `thread`.`iid` = `item`.`id` SET `thread`.`uri-id` = `item`.`uri-id`")) { return Update::FAILED; } @@ -462,7 +466,7 @@ function pre_update_1364() return Update::FAILED; } - if (!DBA::e("DELETE FROM `user-item` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + if (DBStructure::existsTable('user-item') && !DBA::e("DELETE FROM `user-item` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { return Update::FAILED; } @@ -486,10 +490,6 @@ function pre_update_1364() return Update::FAILED; } - if (!DBA::e("DELETE FROM `participation` WHERE NOT `cid` IN (SELECT `id` FROM `contact`)")) { - return Update::FAILED; - } - if (!DBA::e("DELETE FROM `profile_check` WHERE NOT `cid` IN (SELECT `id` FROM `contact`)")) { return Update::FAILED; } @@ -498,10 +498,6 @@ function pre_update_1364() return Update::FAILED; } - if (!DBA::e("DELETE FROM `participation` WHERE NOT `fid` IN (SELECT `id` FROM `fcontact`)")) { - return Update::FAILED; - } - if (!DBA::e("DELETE FROM `group_member` WHERE NOT `gid` IN (SELECT `id` FROM `group`)")) { return Update::FAILED; } @@ -510,11 +506,7 @@ function pre_update_1364() return Update::FAILED; } - if (!DBA::e("DELETE FROM `participation` WHERE NOT `iid` IN (SELECT `id` FROM `item`)")) { - return Update::FAILED; - } - - if (!DBA::e("DELETE FROM `user-item` WHERE NOT `iid` IN (SELECT `id` FROM `item`)")) { + if (DBStructure::existsTable('user-item') && !DBA::e("DELETE FROM `user-item` WHERE NOT `iid` IN (SELECT `id` FROM `item`)")) { return Update::FAILED; } @@ -527,7 +519,7 @@ function pre_update_1365() return Update::FAILED; } - if (!DBA::e("DELETE FROM `thread` WHERE NOT `iid` IN (SELECT `id` FROM `item`)")) { + if (DBStructure::existsTable('thread') && !DBA::e("DELETE FROM `thread` WHERE NOT `iid` IN (SELECT `id` FROM `item`)")) { return Update::FAILED; } @@ -556,7 +548,7 @@ function pre_update_1376() return Update::FAILED; } - if (!DBA::e("DELETE FROM `thread` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { + if (DBStructure::existsTable('thread') && !DBA::e("DELETE FROM `thread` WHERE NOT `uid` IN (SELECT `uid` FROM `user`)")) { return Update::FAILED; } @@ -597,15 +589,15 @@ function pre_update_1377() return Update::FAILED; } - if (!DBA::e("DELETE FROM `thread` WHERE NOT `author-id` IN (SELECT `id` FROM `contact`)")) { + if (DBStructure::existsTable('thread') && !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`)")) { + if (DBStructure::existsTable('thread') && !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`)")) { + if (DBStructure::existsTable('thread') && !DBA::e("UPDATE `thread` SET `contact-id` = `owner-id` WHERE NOT `contact-id` IN (SELECT `id` FROM `contact`)")) { return Update::FAILED; } @@ -665,3 +657,258 @@ function update_1380() return Update::SUCCESS; } + +function pre_update_1395() +{ + if (DBStructure::existsTable('post-user') && !DBA::e("DROP TABLE `post-user`")) { + return Update::FAILED; + } + return Update::SUCCESS; +} + +function update_1395() +{ + if (!DBA::e("INSERT INTO `post-user`(`id`, `uri-id`, `uid`, `contact-id`, `unseen`, `origin`, `psid`) + SELECT `id`, `uri-id`, `uid`, `contact-id`, `unseen`, `origin`, `psid` FROM `item` + ON DUPLICATE KEY UPDATE `contact-id` = `item`.`contact-id`, `unseen` = `item`.`unseen`, `origin` = `item`.`origin`, `psid` = `item`.`psid`")) { + return Update::FAILED; + } + + if (DBStructure::existsTable('user-item') && !DBA::e("INSERT INTO `post-user`(`uri-id`, `uid`, `hidden`, `notification-type`) + SELECT `uri-id`, `user-item`.`uid`, `hidden`,`notification-type` FROM `user-item` + INNER JOIN `item` ON `item`.`id` = `user-item`.`iid` + ON DUPLICATE KEY UPDATE `hidden` = `user-item`.`hidden`, `notification-type` = `user-item`.`notification-type`")) { + return Update::FAILED; + } + return Update::SUCCESS; +} + +function update_1396() +{ + if (!DBStructure::existsTable('item-content')) { + return Update::SUCCESS; + } + + if (!DBA::e("INSERT IGNORE INTO `post-content`(`uri-id`, `title`, `content-warning`, `body`, `raw-body`, + `location`, `coord`, `language`, `app`, `rendered-hash`, `rendered-html`, + `object-type`, `object`, `target-type`, `target`, `resource-id`, `plink`) + SELECT `item-content`.`uri-id`, `item-content`.`title`, `item-content`.`content-warning`, + `item-content`.`body`, `item-content`.`raw-body`, `item-content`.`location`, `item-content`.`coord`, + `item-content`.`language`, `item-content`.`app`, `item-content`.`rendered-hash`, + `item-content`.`rendered-html`, `item-content`.`object-type`, `item-content`.`object`, + `item-content`.`target-type`, `item-content`.`target`, `item`.`resource-id`, `item-content`.`plink` + FROM `item-content` INNER JOIN `item` ON `item`.`uri-id` = `item-content`.`uri-id`")) { + return Update::FAILED; + } + return Update::SUCCESS; +} + +function update_1397() +{ + if (!DBA::e("INSERT INTO `post-user-notification`(`uri-id`, `uid`, `notification-type`) + SELECT `uri-id`, `uid`, `notification-type` FROM `post-user` WHERE `notification-type` != 0 + ON DUPLICATE KEY UPDATE `uri-id` = `post-user`.`uri-id`, `uid` = `post-user`.`uid`, `notification-type` = `post-user`.`notification-type`")) { + return Update::FAILED; + } + + if (!DBStructure::existsTable('user-item')) { + return Update::SUCCESS; + } + + if (!DBA::e("INSERT INTO `post-user-notification`(`uri-id`, `uid`, `notification-type`) + SELECT `uri-id`, `user-item`.`uid`, `notification-type` FROM `user-item` + INNER JOIN `item` ON `item`.`id` = `user-item`.`iid` WHERE `notification-type` != 0 + ON DUPLICATE KEY UPDATE `notification-type` = `user-item`.`notification-type`")) { + return Update::FAILED; + } + + if (!DBStructure::existsTable('thread')) { + return Update::SUCCESS; + } + + if (!DBA::e("INSERT IGNORE INTO `post-thread-user`(`uri-id`, `uid`, `pinned`, `starred`, `ignored`, `wall`, `pubmail`, `forum_mode`) + SELECT `thread`.`uri-id`, `thread`.`uid`, `user-item`.`pinned`, `thread`.`starred`, + `thread`.`ignored`, `thread`.`wall`, `thread`.`pubmail`, `thread`.`forum_mode` + FROM `thread` LEFT JOIN `user-item` ON `user-item`.`iid` = `thread`.`iid`")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function update_1398() +{ + if (!DBStructure::existsTable('thread')) { + return Update::SUCCESS; + } + + if (!DBA::e("INSERT IGNORE INTO `post-thread` (`uri-id`, `owner-id`, `author-id`, `network`, `created`, `received`, `changed`, `commented`) + SELECT `uri-id`, `owner-id`, `author-id`, `network`, `created`, `received`, `changed`, `commented` FROM `thread`")) { + return Update::FAILED; + } + + if (!DBStructure::existsTable('thread')) { + return Update::SUCCESS; + } + + if (!DBA::e("UPDATE `post-thread-user` INNER JOIN `thread` ON `thread`.`uid` = `post-thread-user`.`uid` AND `thread`.`uri-id` = `post-thread-user`.`uri-id` + SET `post-thread-user`.`mention` = `thread`.`mention`")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function update_1399() +{ + if (!DBA::e("UPDATE `post-thread-user` INNER JOIN `post-user` ON `post-user`.`uid` = `post-thread-user`.`uid` AND `post-user`.`uri-id` = `post-thread-user`.`uri-id` + SET `post-thread-user`.`contact-id` = `post-user`.`contact-id`, `post-thread-user`.`unseen` = `post-user`.`unseen`, + `post-thread-user`.`hidden` = `post-user`.`hidden`, `post-thread-user`.`origin` = `post-user`.`origin`, + `post-thread-user`.`psid` = `post-user`.`psid`, `post-thread-user`.`post-user-id` = `post-user`.`id`")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function update_1400() +{ + if (!DBA::e("INSERT IGNORE INTO `post` (`uri-id`, `parent-uri-id`, `thr-parent-id`, `owner-id`, `author-id`, `network`, + `created`, `received`, `edited`, `gravity`, `causer-id`, `post-type`, `vid`, `private`, `visible`, `deleted`, `global`) + SELECT `uri-id`, `parent-uri-id`, `thr-parent-id`, `owner-id`, `author-id`, `network`, `created`, `received`, `edited`, + `gravity`, `causer-id`, `post-type`, `vid`, `private`, `visible`, `deleted`, `global` FROM `item`")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `post-user` INNER JOIN `item` ON `item`.`uri-id` = `post-user`.`uri-id` AND `item`.`uid` = `post-user`.`uid` + INNER JOIN `event` ON `item`.`event-id` = `event`.`id` AND `event`.`id` != 0 + SET `post-user`.`event-id` = `item`.`event-id`")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `post-user` INNER JOIN `item` ON `item`.`uri-id` = `post-user`.`uri-id` AND `item`.`uid` = `post-user`.`uid` + SET `post-user`.`wall` = `item`.`wall`, `post-user`.`parent-uri-id` = `item`.`parent-uri-id`, + `post-user`.`thr-parent-id` = `item`.`thr-parent-id`, + `post-user`.`created` = `item`.`created`, `post-user`.`edited` = `item`.`edited`, + `post-user`.`received` = `item`.`received`, `post-user`.`gravity` = `item`.`gravity`, + `post-user`.`network` = `item`.`network`, `post-user`.`owner-id` = `item`.`owner-id`, + `post-user`.`author-id` = `item`.`author-id`, `post-user`.`causer-id` = `item`.`causer-id`, + `post-user`.`post-type` = `item`.`post-type`, `post-user`.`vid` = `item`.`vid`, + `post-user`.`private` = `item`.`private`, `post-user`.`global` = `item`.`global`, + `post-user`.`visible` = `item`.`visible`, `post-user`.`deleted` = `item`.`deleted`")) { + return Update::FAILED; + } + + if (!DBA::e("INSERT IGNORE INTO `post-thread-user` (`uri-id`, `owner-id`, `author-id`, `causer-id`, `network`, + `created`, `received`, `changed`, `commented`, `uid`, `wall`, `contact-id`, `unseen`, `hidden`, `origin`, `psid`, `post-user-id`) + SELECT `uri-id`, `owner-id`, `author-id`, `causer-id`, `network`, `created`, `received`, `received`, `received`, + `uid`, `wall`, `contact-id`, `unseen`, `hidden`, `origin`, `psid`, `id` + FROM `post-user` WHERE `gravity` = 0 AND NOT EXISTS(SELECT `uri-id` FROM `post-thread-user` WHERE `post-user-id` = `post-user`.id)")) { + return Update::FAILED; + } + + if (!DBA::e("UPDATE `post-thread-user` INNER JOIN `post-thread` ON `post-thread-user`.`uri-id` = `post-thread`.`uri-id` + SET `post-thread-user`.`owner-id` = `post-thread`.`owner-id`, `post-thread-user`.`author-id` = `post-thread`.`author-id`, + `post-thread-user`.`causer-id` = `post-thread`.`causer-id`, `post-thread-user`.`network` = `post-thread`.`network`, + `post-thread-user`.`created` = `post-thread`.`created`, `post-thread-user`.`received` = `post-thread`.`received`, + `post-thread-user`.`changed` = `post-thread`.`changed`, `post-thread-user`.`commented` = `post-thread`.`commented`")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function pre_update_1403() +{ + // Necessary before a primary key change + if (!DBA::e("DROP TABLE `parsed_url`")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function update_1404() +{ + $tasks = DBA::select('workerqueue', ['id', 'command', 'parameter'], ['command' => ['notifier', 'delivery', 'apdelivery', 'done' => false]]); + while ($task = DBA::fetch($tasks)) { + $parameters = json_decode($task['parameter'], true); + + if (in_array($parameters[0], [Delivery::MAIL, Delivery::SUGGESTION, Delivery::REMOVAL, Delivery::RELOCATION])) { + continue; + } + + switch (strtolower($task['command'])) { + case 'notifier': + if (count($parameters) == 3) { + continue 2; + } + $item = DBA::selectFirst('item', ['uid', 'uri-id'], ['id' => $parameters[1]]); + if (!DBA::isResult($item)) { + continue 2; + } + + $parameters[1] = $item['uri-id']; + $parameters[2] = $item['uid']; + break; + case 'delivery': + if (count($parameters) == 4) { + continue 2; + } + $item = DBA::selectFirst('item', ['uid', 'uri-id'], ['id' => $parameters[1]]); + if (!DBA::isResult($item)) { + continue 2; + } + + $parameters[1] = $item['uri-id']; + $parameters[3] = $item['uid']; + break; + case 'apdelivery': + if (count($parameters) == 6) { + continue 2; + } + + if (empty($parameters[4])) { + $parameters[4] = []; + } + + $item = DBA::selectFirst('item', ['uri-id'], ['id' => $parameters[1]]); + if (!DBA::isResult($item)) { + continue 2; + } + + $parameters[5] = $item['uri-id']; + break; + default: + continue 2; + } + DBA::update('workerqueue', ['parameter' => json_encode($parameters)], ['id' => $task['id']]); + + return Update::SUCCESS; + } +} + +function update_1407() +{ + if (!DBA::e("UPDATE `post` SET `causer-id` = NULL WHERE `causer-id` = 0")) { + return Update::FAILED; + } + if (!DBA::e("UPDATE `post-user` SET `causer-id` = NULL WHERE `causer-id` = 0")) { + return Update::FAILED; + } + if (!DBA::e("UPDATE `post-thread` SET `causer-id` = NULL WHERE `causer-id` = 0")) { + return Update::FAILED; + } + if (!DBA::e("UPDATE `post-thread-user` SET `causer-id` = NULL WHERE `causer-id` = 0")) { + return Update::FAILED; + } + + return Update::SUCCESS; +} + +function update_1413() +{ + if (!DBA::e("UPDATE `post-user` SET `post-reason` = `post-type` WHERE `post-type` >= 64 and `post-type` <= 75")) { + return Update::FAILED; + } +}