A partially applied migration left the schema unrunnable; each step is now idempotent.
Conversation
Turn 1 — User
A migration failed halfway and now I cannot run it again.
Turn 2 — Assistant
Each step now checks its own precondition, so re-running skips what already applied rather than failing on a duplicate column. The runner records each completed step separately instead of marking the whole migration done at the end.
Added a test that interrupts a migration mid-way and re-runs it to completion.
Turn 3 — User
Does that cover a rollback?
Turn 4 — Assistant
No — this only makes forward runs repeatable. Rollback would need a down step per migration, which is a bigger change than the failure warranted.
Subjects
- [[SQLite]]
- [[REST API]]
- [[pytest]]