Bases & syntaxe
// Déclaration d'un modèle simple
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
Utilisé pour décrire les structures de données.
Structures de données
// Utilisation de tableaux de relations
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}
Permet de définir les relations entre les modèles.
Fonctions & methodes essentielles
// Création d'un utilisateur
const newUser = await prisma.user.create({
data: {
email: "alice@prisma.io",
name: "Alice"
}
});
Permet de créer des instances dans la base de données.
Patterns courants
// Utilisation du pattern Eager Loading pour récupérer les relations
const users = await prisma.user.findMany({
include: {
posts: true
}
});
Optimise les requêtes en pré-chargement des relations.
Operations avancees
// Utilisation de la fonction aggregate pour obtenir des statistiques
const countUsers = await prisma.user.aggregate({
_count: true
});
Permet d'effectuer des opérations d'agrégation sur les données.
Debugging & outils
// Utilisation du mode debug
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient({ log: ['query', 'info', 'warn'] });
Active le logging pour déboguer les requêtes Prisma.