skills/prisma-upgrade-v7-schema-changes/SKILL.md
Schema Changes. Reference when using this Prisma feature.
npx skillsauth add prisma/cursor-plugin prisma-upgrade-v7-schema-changesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Prisma v7 introduces a new prisma-client generator. Update your generator block and import paths accordingly.
generator client {
provider = "prisma-client-js"
engineType = "binary" // or "library"
}
generator client {
provider = "prisma-client"
output = "../generated"
}
Use prisma-client in Prisma v7.
prisma-client)The output field is mandatory when using prisma-client. Prisma Client no longer generates to node_modules with this generator.
generator client {
provider = "prisma-client"
output = "../generated" // Required for prisma-client
}
engineType is removed in Prisma v7. Remove any engineType setting from your generator block.
output = "../generated"
Creates: generated/client
output = "../../packages/database/generated"
output = "./generated"
Creates: prisma/generated/client
The url, directUrl, and shadowDatabaseUrl values now live in prisma.config.ts in Prisma v7. Keep only the provider in schema.prisma:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
datasource db {
provider = "postgresql"
// URLs configured in prisma.config.ts
}
// prisma.config.ts
export default defineConfig({
datasource: {
url: env('DATABASE_URL'),
directUrl: env('DIRECT_URL'),
shadowDatabaseUrl: env('SHADOW_DATABASE_URL'),
},
})
generator client {
provider = "prisma-client-js"
engineType = "library"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
generator client {
provider = "prisma-client"
output = "../generated"
}
datasource db {
provider = "postgresql"
}
Run prisma generate:
npx prisma generate
Update imports throughout your codebase:
// Before (prisma-client-js)
import { PrismaClient } from '@prisma/client'
// After (prisma-client, output = "../generated")
import { PrismaClient } from '../generated/client'
Update .gitignore (if using prisma-client output):
generated
Preview features work the same:
generator client {
provider = "prisma-client"
output = "../generated"
previewFeatures = ["relationJoins", "fullTextSearch"]
}
tools
Removed Features. Reference when using this Prisma feature.
tools
Prisma Config. Reference when using this Prisma feature.
tools
ESM Support. Reference when using this Prisma feature.
tools
Environment Variables