Fix route deletion failing due to FK constraint violations
All checks were successful
CI / backend-lint (push) Successful in 8s
CI / frontend-lint (push) Successful in 31s

Route deletion failed with two integrity errors:
1. route_encounters had no cascade, so SQLAlchemy tried to NULL
   the non-nullable route_id instead of deleting the rows
2. boss_battles.after_route_id referenced the route being deleted

Added cascade="all, delete-orphan" to Route.route_encounters and
nulled out boss battle after_route_id references before deletion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-14 15:24:02 +01:00
parent a31e8bf174
commit d1503553ea
3 changed files with 27 additions and 2 deletions

View File

@@ -0,0 +1,18 @@
---
# nuzlocke-tracker-h0dr
title: Fix route deletion failing due to missing cascade on route_encounters
status: completed
type: bug
priority: normal
created_at: 2026-02-14T14:19:56Z
updated_at: 2026-02-14T14:23:10Z
---
Deleting a route returns 500 due to two FK constraint issues:
1. `route_encounters.route_id` — missing cascade on the relationship (SQLAlchemy tried to NULL a NOT NULL column)
2. `boss_battles.after_route_id` — references the route being deleted
## Fix
- Added `cascade="all, delete-orphan"` to `Route.route_encounters` relationship
- Added `update(BossBattle).where(...).values(after_route_id=None)` before deleting the route in the delete endpoint