Might not be the best SQL queries but for reference I used these, with regards to:
- Delete all entries in
metadata_itemsthat relate to ametadata_item_idwhich has too many extras (find Volts handy query above)- Delete all orphaned
media_streamsentries (when a media stream is for a media item which relates to a metadata item that doesn’t exist)- Delete all orphaned
media_partsentries (when a media part is for a media item which relates to a metadata item that doesn’t exist)- Delete all orphaned
media_itemsentries (when a media item entry is for a metadata item that doesn’t exist)
- Since I only had 3 offending IDs I did these manually, you’d need to write some other command to delete all matches.
DELETE FROM metadata_relations WHERE metadata_item_id = '<offending-id>'
DELETE FROM metadata_items
WHERE id IN (
SELECT related_metadata_item_id
FROM metadata_relations
WHERE metadata_item_id = '<offending-id>'
)
DELETE FROM media_streams
WHERE media_item_id IN (
SELECT media_streams.media_item_id
FROM media_streams
INNER JOIN media_items ON media_streams.media_item_id=media_items.id
WHERE media_items.metadata_item_id NOT IN (
SELECT id
FROM metadata_items
)
)
DELETE FROM media_parts
WHERE media_item_id in (
SELECT media_parts.media_item_id
FROM media_parts INNER JOIN media_items ON media_parts.media_item_id=media_items.id
WHERE media_items.metadata_item_id NOT IN (
SELECT id
FROM metadata_items
)
)
DELETE FROM media_items
WHERE metadata_item_id NOT IN (
SELECT id
FROM metadata_items
)