* fix(migration): backsweep orphaned observation memory units Delete observation rows whose every source_memory_id points to a deleted memory unit, left behind before PR #580 fixed the chunk FK cascade and before delete_document() called _delete_stale_observations_for_memories. Closes #572 (data cleanup for pre-existing installs). * fix(migration): broaden backsweep to cover all fact types and bank-level orphans - Pass 1: delete any memory_units row (all fact_types) whose bank_id no longer exists in banks — catches orphans from bank deletions that predate a FK cascade between the two tables. - Pass 2: delete observation rows whose every source_memory_id points to a deleted memory unit, regardless of document_id/chunk_id anchors. * test(migration): verify backsweep removes orphans and preserves legit rows Adds a focused migration test that: - Starts a fresh pg0 instance at revision f6g7h8i9j0k1 - Seeds orphaned rows for both backsweep passes (ghost-bank + all-dead-sources) - Seeds legitimate rows that must survive - Applies the backsweep migration to head - Asserts the expected rows are deleted/preserved |
||
|---|---|---|
| .. | ||
| versions | ||
| env.py | ||
| README | ||
| script.py.mako | ||
Generic single-database configuration.