diff --git a/doc/Update.md b/doc/Update.md index c4fe161863..db986126ca 100644 --- a/doc/Update.md +++ b/doc/Update.md @@ -77,3 +77,32 @@ RENAME TABLE _new TO ; ``` This method is slower overall, but it is better suited for large numbers of duplicates. + +### Resolving Possible Database Issues Post Upgrading + +#### Foriegn Keys + +Some of the updates include the use of foreign keys now that will bump +into issues with previous versions, which would sometimes shove bad +data into tables, preventing, causing errors such as below. + +``` +Error 1452 occurred during database update: +Cannot add or update a child row: a foreign key constraint fails (`friendica`.`#sql-10ea6_5a6d`, CONSTRAINT `#sql-10ea6_5a6d_ibfk_1` FOREIGN KEY (`contact-id`) REFERENCES `contact` (`id`)) +ALTER TABLE `thread` ADD FOREIGN KEY (`iid`) REFERENCES `item` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE; +``` + +All current known fixes for possible items that can go wrong are as below. + +```SQL +delete from item where `owner-id` not in (select id from contact); +delete from item where `contact-id` not in (select id from contact); +delete from notify where `uri-id` not in (select id from `item-uri`); +delete from photo where `contact-id` not in (select id from contact); +delete from thread where iid not in (select id from item); +delete from item where `author-id` not in (select id from contact); +delete from diaspora-interaction where uri-id not in (select id from item-uri); +``` + +This all has been compiled as of currently from issue #9746, #9753, +and #9878.