Prisma Client

Prisma Client is an auto-generated and type-safe query builder that's tailored to your data. The easiest way to get started with Prisma Client is by following the Quickstart.

Quickstart (5 min)

The setup instructions below provide a high-level overview of the steps needed to set up Prisma Client. If you want to get started using Prisma Client with your own database, follow one of these guides:

Set up a new project from scratch

Add Prisma to an existing project

Set up

1. Prerequisites

In order to set up Prisma Client, you need a Prisma schema file with your database connection, the Prisma Client generator, and at least one model:

schema.prisma
1datasource db {
2 url = env("DATABASE_URL")
3 provider = "postgresql"
4}
5
6generator client {
7 provider = "prisma-client-js"
8}
9
10model User {
11 id Int @id @default(autoincrement())
12 createdAt DateTime @default(now())
13 email String @unique
14 name String?
15}

Also make sure to install the Prisma CLI:

npm install prisma --save-dev
npx prisma

2. Installation

Install Prisma Client in your project with the following command:

npm install @prisma/client

This command also runs the prisma generate command, which generates the Prisma Client into the node_modules/.prisma/client directory.

3. Use Prisma Client to send queries to your database

import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB

or

const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB

Once you have instantiated PrismaClient, you can start sending queries in your code:

// run inside `async` function
const newUser = await prisma.user.create({
data: {
name: 'Alice',
email: 'alice@prisma.io',
},
})
const users = await prisma.user.findMany()
  • Note that queries will only run if used with await or chained with .then(). When using $transaction's this makes it possible for the client to pass all the queries on to the query engine as a transaction.
  • The client methods are "thenable", they return a PrismaPromise which is implemented like a JavaScript Promise, except for the query to be executed they need to be awaited or chained with .then().

4. Evolving your application

Whenever you make changes to your database that are reflected in the Prisma schema, you need to manually re-generate Prisma Client to update the generated code in the node_modules/.prisma/client directory:

prisma generate

In this section

Edit this page on GitHub