Database with Prisma

Prisma is the most modern and popular ORM for Node.js and TypeScript. It greatly simplifies database management with a declarative schema, automatic migrations and a type-safe client.
tutorialDetail.content.prisma.intro_p2
tutorialDetail.content.prisma.intro_p3
Prerequisites
tutorialDetail.content.prisma.s1_p1
tutorialDetail.content.prisma.s1_p2
tutorialDetail.content.prisma.s1_p3
tutorialDetail.content.prisma.s1_p4
tutorialDetail.content.prisma.s1_p5
- Node.js 18+ and npm installed
- TypeScript knowledge
- PostgreSQL, MySQL or SQLite available
- A Node.js or Next.js project configured
- 1tutorialDetail.content.prisma.s1_steps
tutorialDetail.content.prisma.s1_codePro Tip
tutorialDetail.content.prisma.s1_p6
tutorialDetail.content.prisma.s1_p7
tutorialDetail.content.prisma.s1_p8
Installation and schema
Prisma is installed as a dev dependency and generates a typed client based on your database schema. The schema is defined in a prisma/schema.prisma file.
tutorialDetail.content.prisma.s2_p2
tutorialDetail.content.prisma.s2_p3
tutorialDetail.content.prisma.s2_p4
tutorialDetail.content.prisma.s2_p5
- tutorialDetail.content.prisma.s2_list
- 1tutorialDetail.content.prisma.s2_steps
npm install prisma @prisma/client
npx prisma init
// prisma/schema.prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
createdAt DateTime @default(now())
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}Pro Tip
tutorialDetail.content.prisma.s2_p6
tutorialDetail.content.prisma.s2_p7
tutorialDetail.content.prisma.s2_p8
Queries with Prisma Client
Prisma Client provides an intuitive and fully typed API for querying your database. TypeScript autocomplete makes queries safe and efficient.
tutorialDetail.content.prisma.s3_p2
tutorialDetail.content.prisma.s3_p3
tutorialDetail.content.prisma.s3_p4
tutorialDetail.content.prisma.s3_p5
- tutorialDetail.content.prisma.s3_list
- 1tutorialDetail.content.prisma.s3_steps
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
// Create user
const user = await prisma.user.create({
data: { email: 'peter@syxweb.com', name: 'Peter' }
})
// Get all published posts with author
const posts = await prisma.post.findMany({
where: { published: true },
include: { author: true },
orderBy: { createdAt: 'desc' }
})Pro Tip
tutorialDetail.content.prisma.s3_p6
tutorialDetail.content.prisma.s3_p7
tutorialDetail.content.prisma.s3_p8
Conclusion
Prisma transforms the experience of working with databases in Node.js. Its declarative schema, automatic migrations and typed client eliminate a huge amount of errors and accelerate development.
tutorialDetail.content.prisma.s4_p2
tutorialDetail.content.prisma.s4_p3
tutorialDetail.content.prisma.s4_p4
tutorialDetail.content.prisma.s4_p5
- tutorialDetail.content.prisma.s4_list
- 1tutorialDetail.content.prisma.s4_steps
tutorialDetail.content.prisma.s4_codePro Tip
tutorialDetail.content.prisma.s4_p6
tutorialDetail.content.prisma.s4_p7
tutorialDetail.content.prisma.s4_p8
Frequently Asked Questions
THE AUTHOR
Peter Lima
Peter is a full stack web developer with over 5 years of experience creating digital solutions. Specialist in React, Next.js and Node.js, passionate about sharing knowledge and helping other developers grow professionally.
More from Peter Lima

