Initialise Prisma, crée le modèle User et effectue la migration.
Renseigne ton email pour débloquer immédiatement cette formation gratuite.
Dans cette leçon, tu vas apprendre à intégrer Prisma dans ton projet Next.js, configurer une base de données SQLite et définir un modèle User
prêt pour l’authentification. On couvrira :
.env
Pour démarrer, installe Prisma CLI et génère la configuration initiale.
1npm install prisma --save-dev2npx prisma init
Cette commande crée :
prisma/
contenant schema.prisma
.env
mis à jour avec DATABASE_URL
L’installation globale de Prisma (npm install -g prisma
) est possible,
mais on recommande une dépendance locale pour garder la version projet cohérente.
On va opter pour SQLite pour simplifier la configuration locale. Ouvre ton fichier .env
et remplace la valeur par :
1# Chemin vers le fichier SQLite en local2DATABASE_URL="file:./dev.db"
Ne stocke jamais de vrais secrets en clair dans .env
pour la production.
En dev local, SQLite est suffisant, mais choisis un provider plus robuste
(PostgreSQL, MySQL, etc.) pour la prod.
Pense à exclure dev.db
de ton contrôle de version :
1# Ignore la base SQLite générée2/dev.db
Édite le schéma Prisma dans prisma/schema.prisma
pour y ajouter ton modèle User
:
1generator client {2provider = "prisma-client-js"3}45datasource db {6provider = "sqlite"7url = env("DATABASE_URL")8}910model User {11id Int @id @default(autoincrement())12email String @unique13password String14}
// @callout: Le champ @unique
garantit l’unicité de l’email
// @callout: autoincrement()
crée un ID numérique séquentiel
Cette simple définition crée un utilisateur avec :
id
: entier auto-incrémentéemail
: chaîne uniquepassword
: chaîne pour stocker le hashMaintenant, génère et applique une migration pour créer la table User
dans ta base.
1npx prisma migrate dev --name add-user
▶ Une nouvelle migration apparaît dans prisma/migrations/add-user/
▶ Le fichier dev.db
est créé automatiquement
À chaque changement de schéma, répète cette commande pour préserver l’historique des migrations.
Pour explorer visuellement ta base et t’assurer que tout est en place, lance Prisma Studio :
1npx prisma studio
Tu devrais voir la table User vide. Tu peux y insérer manuellement un utilisateur pour tester.
Enfin, installe le client généré par Prisma pour l’utiliser dans ton code Next.js :
1npm install @prisma/client
Puis crée une instance que tu pourras importer partout :
1import { PrismaClient } from '@prisma/client'23export const prisma = new PrismaClient()
Utilise une instance globale de prisma
pour éviter de multiplier les connexions
à la base lors du hot-reload en développement.
npx prisma init
génère la config et le fichier .env
file:./dev.db
) est parfait pour démarrer en localschema.prisma
déclenche la création de la tableprisma migrate dev
) maintiennent l’historique du schémaAjouter un champ name
schema.prisma
pour ajouter name String?
dans model User
.prisma migrate dev --name add-name
.Seed de données
prisma/seed.ts
où tu importes prisma
et insères deux utilisateurs."seed": "tsx prisma/seed.ts"
et exécute-le.Changer de provider
DATABASE_URL
dans .env
.provider = "postgresql"
dans schema.prisma
.