Prisma bundles a native database engine binary matched to whatever machine runs "prisma generate." Without an explicit binaryTargets list, it only bundles the engine for the local build machine - which doesn't match Vercel's serverless runtime. Every database call then crashed at runtime with no useful error, which is what showed up as "server error" right after logging in (the profile page is the first one that reads from the database). Added "rhel-openssl-3.0.x" (Vercel's actual runtime) alongside "native" so both platforms get a working engine. Also wrapped the profile page's database calls in a try/catch so any future failure shows a plain "something went wrong, try again" message instead of Next.js's raw crash screen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VL5YUEf2B9LG4xdVUQwcSg
24 lines
658 B
Plaintext
24 lines
658 B
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
// "native" builds for local dev; "rhel-openssl-3.0.x" is the engine
|
|
// Vercel's serverless functions actually run on. Without both, database
|
|
// calls crash in production with no useful error message.
|
|
binaryTargets = ["native", "rhel-openssl-3.0.x"]
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(cuid())
|
|
email String @unique
|
|
passwordHash String
|
|
name String
|
|
age Int
|
|
bio String @default("")
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|