Folders have a self-referential parent_id FK with no ON DELETE rule. A flat DELETE of the whole subtree trips folders_parent_id_fkey because postgres checks the constraint per-row regardless of insertion / list order. Hard-removing 'Taco and Muli - 2024 onward' (35-folder subtree) returned 500 with ForeignKeyViolationError every attempt. Fix: UPDATE folders SET parent_id = NULL WHERE id IN (folder_ids) before the DELETE so the chain is broken cleanly. Same pattern used in prune_missing_photos for the same constraint. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
13 KiB
13 KiB