Prisma Guide
Prisma is a next-generation ORM that provides type-safe database access for your Express.js application.
Adding Prisma to Your Project
xacos create:prismaDefine Your Schema
Edit prisma/schema.prisma to define your data models:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(uuid())
email String @unique
name String
posts Post[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Post {
id String @id @default(uuid())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId String
createdAt DateTime @default(now())
}Running Migrations
# Create a migration
npx prisma migrate dev --name add-user-model
# Generate Prisma Client
npx prisma generate
# Apply migrations in production
npx prisma migrate deployUsing Prisma Client
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
// Create a user
const user = await prisma.user.create({
data: {
email: 'alice@example.com',
name: 'Alice',
},
});
// Find all users
const users = await prisma.user.findMany({
include: { posts: true },
});
// Update a user
const updated = await prisma.user.update({
where: { id: user.id },
data: { name: 'Alice Updated' },
});Prisma Studio
Open Prisma Studio to manage your data visually:
npx prisma studio