add current known foriegn key fixes possibly required post upgrading

This commit is contained in:
Zane C. Bowers-Hadley 2021-02-07 20:33:47 -06:00
parent ee6699e641
commit bcb1cd71e8

View 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. 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.