diff --git a/prisma/migrations/0047_medication_schedule_window_snake_case/migration.sql b/prisma/migrations/0047_medication_schedule_window_snake_case/migration.sql new file mode 100644 index 000000000..0dfd81ac6 --- /dev/null +++ b/prisma/migrations/0047_medication_schedule_window_snake_case/migration.sql @@ -0,0 +1,24 @@ +-- v1.4.25 W4e — medication_schedules @map to snake_case (cosmetic + +-- convention). +-- +-- Prior to this migration `medication_schedules.windowStart` and +-- `medication_schedules.windowEnd` were the only columns on the model +-- that still used the camelCase identifier from the original +-- 0001_init.sql — every other column on the table (medication_id, +-- days_of_week) already follows the snake_case convention enforced +-- everywhere else in the schema. The drift was harmless (Prisma's +-- generated client uses the TypeScript-side `windowStart` / +-- `windowEnd` names regardless of the SQL identifier), but the +-- inconsistency tripped reviewers and made `grep window_start +-- prisma/migrations/` return zero rows. +-- +-- The rename is purely a rename — the data does not move, no indexes +-- change, no foreign keys are affected. We use IF EXISTS so a +-- replayed migration on a fresh-from-schema DB (Prisma's `db push` +-- against a brand-new local) doesn't blow up trying to rename a +-- column that the schema-pushed shape already named snake_case. +-- +-- Forward-only; no DOWN migration. + +ALTER TABLE "medication_schedules" RENAME COLUMN "windowStart" TO "window_start"; +ALTER TABLE "medication_schedules" RENAME COLUMN "windowEnd" TO "window_end"; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 1665e010f..4920c0ca2 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -372,8 +372,15 @@ model Medication { model MedicationSchedule { id String @id @default(cuid()) medicationId String @map("medication_id") - windowStart String // HH:mm format, e.g. "08:00" - windowEnd String // HH:mm format, e.g. "10:00" + /// v1.4.25 W4e — schema-convention fix. Prior to this release the DB + /// columns were the camelCase identifiers `"windowStart"` / `"windowEnd"` + /// because the original 0001_init migration omitted `@map`. The + /// Prisma client surface stays unchanged (`windowStart` / + /// `windowEnd`); only the underlying SQL identifier is renamed to + /// match the snake_case convention every other column on this model + /// already follows. + windowStart String @map("window_start") // HH:mm format, e.g. "08:00" + windowEnd String @map("window_end") // HH:mm format, e.g. "10:00" label String? // e.g. "Morning", "Evening" dose String? // Per-schedule dose override; null = use Medication.dose daysOfWeek String? @map("days_of_week") // Comma-separated day numbers (0=Sun..6=Sat), null = daily