refactor(db): migrate interview preparation

Move durable user-owned interview preparation into an additive provider-aware migration. Preserve questions, answers, practice state, ordering, and application cascade semantics.
This commit is contained in:
cesnimda
2026-08-30 18:58:55 +02:00
parent 934b35a1e0
commit a906916acc
10 changed files with 148 additions and 55 deletions
+7 -2
View File
@@ -39,6 +39,8 @@ cohesive table groups. It does not attempt to delete the legacy reconciler whole
stable system keys, manual steps, completion state, and user ordering.
- Added `20260830131000_AdoptCoverLetterVersionSchema` for append-only document history, retaining
manual and AI-approved text plus source/action metadata.
- Added `20260830132000_AdoptInterviewPrepItemSchema` for durable interview-practice content,
retaining user and AI questions, answers, prepared state, source metadata, and ordering.
- Corrected the ownership runbook: new tables now default to migrations; the reconciler is legacy
compatibility code to retire one dependency group at a time.
@@ -76,14 +78,17 @@ migration.
re-upgrade; deleting the parent application still cascades through its workflow items.
- Representative manual and AI cover-letter revisions survive adoption, downgrade, and re-upgrade;
deleting the parent application still cascades through document history.
- Representative user-authored and AI-generated interview-preparation items survive adoption,
downgrade, and re-upgrade with practice state intact; their ordering index and application cascade
remain effective.
- Generated MariaDB SQL contains the provider-correct `SystemEmailSettings` DDL.
- Full backend: 733/733 passed after the cover-letter history transfer.
- Full backend: 734/734 passed after the interview-preparation transfer.
- Fresh application startup over a new disposable SQLite database applied
`20260830120000_AdoptSystemEmailSettingsSchema` and reached the healthy listening state.
## Remaining JT-019 work
Sixteen model tables remain startup-created, including the Identity group and several tables
Fifteen model tables remain startup-created: the Career Profile aggregate and Identity group.
with parent dependencies. Transfer them in small dependency-aware migrations with blank, populated,
retry and MariaDB runtime proof. Column/index repairs must remain until historical upgrade fixtures
prove each one redundant.