docs: prove the migration and seed against dev Postgres
Five migrations were pending, not one: this dev database had not been migrated since the prosthesis overhaul landed on master. Used migrate deploy rather than migrate dev so no drift prompt could offer a reset, and counted the DELETE first — 0 rows matched against 2 total. Seeded translations verified: 7 categories and 5 subcategories in fa, en and nl, with crown resolving to روکشها. Both login accounts survived. Also records that .gitea/workflows run no test, lint or typecheck step at all, which is why two spec-file type errors reached the branch unnoticed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -488,3 +488,45 @@ This is decision 39 behaving exactly as approved: teeth and prosthesis apply tog
|
|||||||
means a clinician who wants only the teeth from a prosthesis dictation, intending to pick
|
means a clinician who wants only the teeth from a prosthesis dictation, intending to pick
|
||||||
materials by hand, has no way to get them. Not a spec violation — an unstated consequence.
|
materials by hand, has no way to get them. Not a spec violation — an unstated consequence.
|
||||||
Deliberately not changed unilaterally.
|
Deliberately not changed unilaterally.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-09-07 — Migration and seed proven against dev Postgres
|
||||||
|
|
||||||
|
The last unverified gate. The inspector had run `prisma validate`, which only parses the schema;
|
||||||
|
the build compiled solely because the generated client in `node_modules` already carried the new
|
||||||
|
enum values.
|
||||||
|
|
||||||
|
Found five migrations pending, not one — this dev database had not been migrated since the
|
||||||
|
prosthesis overhaul landed on `master` on 1 September (`a3c14a1`, `72f885d`). Prisma applies in
|
||||||
|
order, so proving one required applying all five.
|
||||||
|
|
||||||
|
Used **`prisma migrate deploy`, not `migrate dev`**: `deploy` applies pending migrations and never
|
||||||
|
offers to reset, so there is no path where a drift prompt drops dev data. §12 should say `deploy`
|
||||||
|
for this reason.
|
||||||
|
|
||||||
|
Counted the `DELETE` in `…_prosthesis_tree_multi_type` before applying rather than trusting its
|
||||||
|
own "no-op for current data" comment: **0 rows matched**, against 2 rows total in
|
||||||
|
`lab_case_tooth_prosthesis`. Both login accounts survived (`users` = 2).
|
||||||
|
|
||||||
|
Verified after seeding:
|
||||||
|
|
||||||
|
| Check | Result |
|
||||||
|
|---|---|
|
||||||
|
| `enum_range(CatalogEntityKind)` | now 5 values, including `PROSTHESIS_CATEGORY` and `PROSTHESIS_SUBCATEGORY` |
|
||||||
|
| Seeded `PROSTHESIS_CATEGORY` rows | 7 per locale × fa/en/nl |
|
||||||
|
| Seeded `PROSTHESIS_SUBCATEGORY` rows | 5 per locale × fa/en/nl |
|
||||||
|
| `crown` in `fa` | `روکشها` — the label that makes "روکش" resolvable to a category |
|
||||||
|
| Code path | `prosthesis-catalog.service.ts:108,119` resolves both kinds via `CatalogLabelService` |
|
||||||
|
|
||||||
|
**Repo-wide gap worth acting on separately:** `.gitea/workflows/*` run no test, lint or typecheck
|
||||||
|
step — only build and deploy. Combined with `nest build` excluding `**/*spec.ts` and ts-jest
|
||||||
|
running transpile-only under `isolatedModules`, nothing in this repo would ever catch a type error
|
||||||
|
in a spec file. That is how two of them reached this branch unnoticed.
|
||||||
|
|
||||||
|
## Remaining before this is shippable
|
||||||
|
|
||||||
|
- The **manual pass in §12** — none of it has been run. Safari and iPad especially, since that is
|
||||||
|
the report that started the revision, and the stack / jaw / chip flows in `fa`.
|
||||||
|
- The Ship phase cannot pass in this repo: no MR template exists, and opening a merge request is
|
||||||
|
gated regardless.
|
||||||
|
|||||||
Reference in New Issue
Block a user