add current known foriegn key fixes possibly required post upgrading
authorZane C. Bowers-Hadley <vvelox@vvelox.net>
Mon, 8 Feb 2021 02:33:47 +0000 (20:33 -0600)
committerZane C. Bowers-Hadley <vvelox@vvelox.net>
Mon, 8 Feb 2021 02:33:47 +0000 (20:33 -0600)
doc/Update.md

index c4fe161..db98612 100644 (file)
@@ -77,3 +77,32 @@ RENAME TABLE <table_name>_new TO <table_name>;
 ```
 
 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.