apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/introduction.mdx
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.
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
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:
datasource db {
provider = "postgresql"
}
generator client {
provider = "prisma-client"
output = "../src/generated/prisma"
}
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
Install Prisma Client in your project with the following command:
npm install @prisma/client
There are multiple ways to import Prisma Client in your project depending on your use case:
import { PrismaClient } from "./generated/prisma";
const prisma = new PrismaClient();
// use `prisma` in your application to read and write data in your DB
const { PrismaClient } = require("./generated/prisma");
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 "./generated/prisma/edge";
const prisma = new PrismaClient();
// use `prisma` in your application to read and write data in your DB
const { PrismaClient } = require("./generated/prisma/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 the location specified in your generator's
outputpath directly, e.g../src/generated/prisma. No need to import from./src/generated/prisma/edge.
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: "[email protected]",
},
});
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().
:::
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 your output directory:
prisma generate