Skip to main content

Introduction

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
datasource db {
url = env("DATABASE_URL")
provider = "postgresql"
}

generator client {
provider = "prisma-client-js"
}

model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
email String @unique
name String?
}

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 Prisma Client into the node_modules/.prisma/client directory.

3. Importing Prisma Client

There are multiple ways to import Prisma Client in your project depending on your use case:

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB

For edge environments, you can import Prisma Client as follows:

import { PrismaClient } from '@prisma/client/edge'

const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB

Note: If you're using driver adapters, you can import from @prisma/client directly. No need to import from @prisma/client/edge.

For Deno, you can import Prisma Client as follows:

lib/prisma.ts
import { PrismaClient } from './generated/client/deno/edge.ts'

const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB

The import path will depend on the custom output specified in Prisma Client's generator block in your Prisma schema.

4. Use Prisma Client to send queries to your database

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()
info

All Prisma Client methods return an instance of PrismaPromise which only executes when you call await or .then() or .catch().

5. 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