The risky Prisma pattern
Prisma field names often differ from database column names. This is common when the database uses snake_case and the application uses camelCase:
model User {
id String @id
fullName String @map("full_name")
@@map("users")
}
A generated migration may remove users.full_name,
while TypeScript still reads user.fullName. A plain
SQL linter can see the destructive DDL, but it cannot always tell
whether the app still reaches that column through Prisma.
What MergeBrake checks in the PR
- Parses the Postgres migration with libpg_query.
- Expands
users.full_nameinto Prisma symbols such asfullName. - Finds references in TypeScript, raw SQL, serializers, and jobs.
- Posts a sticky PR comment with a safe rollout recipe.