Prisma driver adapter for Neon serverless driver
Prisma driver adapter for Neon Serverless Driver. Refer to the announcement blog post and our docs for more details.
Note:: Support for Neon's serverless driver is available from Prisma versions 5.4.2 and later.
The Neon serverless driver is a low-latency Postgres driver for JavaScript and TypeScript that allows you to query data from serverless and edge environments.
Getting started
To get started, enable the driverAdapters
Preview feature in your Prisma schema:
// schema.prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["driverAdapters"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
Note: Make sure your connection string exists in your .env
file. Refer to Neon's docs to learn how to retrieve your database's connection string.
DATABASE_URL="postgres://user:password@server.us-east-2.aws.neon.tech/neondb"
Generate Prisma Client:
npx prisma generate
Install the Prisma adapter for Neon's serverless driver, Neon's serverless driver and ws
packages:
npm install @prisma/adapter-neon
npm install @neondatabase/serverless
npm install ws
Update your Prisma Client instance to use the Neon serverless driver using a WebSocket connection:
import { Pool, neonConfig } from '@neondatabase/serverless'
import { PrismaNeon } from '@prisma/adapter-neon'
import { PrismaClient } from '@prisma/client'
import ws from 'ws'
neonConfig.webSocketConstructor = ws
const connectionString = `${process.env.DATABASE_URL}`
const pool = new Pool({ connectionString })
const adapter = new PrismaNeon(pool)
const prisma = new PrismaClient({ adapter })
You can now use Prisma Client as you normally would with full type-safety. Your Prisma Client instance now uses Neon's serverless driver to connect to your database. This comes with benefits such as WebSocket connections and message pipelining.
Feedback
We encourage you to create an issue if you find something missing or run into a bug.
If you have any feedback, leave a comment in this GitHub discussion.