Migrer vers Prisma 7 : tout ce qui change (et casse)
Pourquoi Prisma 7 casse tout
Prisma 7 est la plus grosse mise à jour depuis la v1. Le changement principal : les driver adapters deviennent obligatoires. Fini le new PrismaClient() tout nu — il faut maintenant passer explicitement un adapter de connexion.
Les 3 changements critiques
1. Driver adapters obligatoires
// ❌ Avant (Prisma 6)
const prisma = new PrismaClient()
// ✅ Après (Prisma 7)
import { PrismaPg } from "@prisma/adapter-pg"
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })
2. Plus de URL dans schema.prisma
La propriété url disparaît du datasource. La connexion se configure dans un nouveau fichier prisma.config.ts :
// prisma.config.ts
import { defineConfig } from "prisma/config"
export default defineConfig({
schema: "prisma/schema.prisma",
datasource: { url: process.env.DATABASE_URL },
})
3. Nouveaux packages nécessaires
pnpm add @prisma/adapter-pg pg
pnpm add -D @types/pg
Migration pas à pas
- Installer les packages adapter
- Créer
prisma.config.ts - Supprimer
urldu schema.prisma - Mettre à jour le singleton PrismaClient dans
src/lib/db.ts - Mettre à jour le seed script
- Tester :
npx prisma db pushpuispnpm build
Piège courant avec Next.js
Le pattern singleton change aussi. L'adapter doit être créé à l'intérieur de la factory function pour éviter les problèmes de hot reload en dev :
const createPrismaClient = () => {
const adapter = new PrismaPg({ connectionString })
return new PrismaClient({ adapter })
}
const globalForPrisma = globalThis as unknown as {
prisma: ReturnType<typeof createPrismaClient> | undefined
}
export const prisma = globalForPrisma.prisma ?? createPrismaClient()
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma
Verdict
La migration prend 15-30 minutes. Le plus dur n'est pas le code — c'est de comprendre pourquoi ça casse. Les driver adapters permettent un meilleur contrôle de la connexion, notamment pour les edge runtimes et les serverless platforms comme Neon ou PlanetScale.
Envie d'en discuter ?
Réservez un appel pour parler de vos projets SaaS ou de vos besoins en consultant Claude Code.
Réserver un appel