@prisma/adapter-planetscale
TypeScript icon, indicating that this package has built-in type declarations

5.20.0 • Public • Published

Prisma driver adapter for PlanetScale serverless driver

Prisma driver adapter for PlanetScale Serverless Driver. Refer to the announcement blog post and our docs for more details.

Note:: Support for PlanetScale's serverless driver is available from Prisma versions 5.4.2 and later.

PlanetScale's serverless driver provides a way of communicating with your PlanetScale database over HTTP which can improve connection reliability and performance

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     = "mysql"
  url          = env("DATABASE_URL")
  relationMode = "prisma"
}

Note: Ensure you update the host value in your connection string to aws.connect.psdb.cloud. You can learn more about this here.

DATABASE_URL="mysql://user:password@aws.connect.psdb.cloud/database_name?sslaccept=strict"

Generate Prisma Client:

npx prisma generate

Install the Prisma adapter for PlanetScale, PlanetScale serverless driver and undici packages:

npm install @prisma/adapter-planetscale
npm install @planetscale/database
npm install undici

Note: When using a Node.js version below 18, you must provide a custom fetch function implementation. We recommend the undici package on which Node's built-in fetch is based. Node.js versions 18 and later include a built-in global fetch function, so you don't have to install an extra package.

Update your Prisma Client instance to use the PlanetsScale serverless driver:

// Import needed packages
import { Client } from '@planetscale/database'
import { PrismaPlanetScale } from '@prisma/adapter-planetscale'
import { PrismaClient } from '@prisma/client'
import { fetch as undiciFetch } from 'undici'

// Setup
const connectionString = `${process.env.DATABASE_URL}`

// Init prisma client
const client = new Client({ url: connectionString, fetch: undiciFetch })
const adapter = new PrismaPlanetScale(client)
const prisma = new PrismaClient({ adapter })

// Use Prisma Client as normal

You can now use Prisma Client as you normally would with full type-safety. Your Prisma Client instance now uses PlanetScale's serverless driver to connect to your database.

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @prisma/adapter-planetscale

Weekly Downloads

14,393

Version

5.20.0

License

Apache-2.0

Unpacked Size

35.3 kB

Total Files

7

Last publish

Collaborators

  • apolanc
  • jkomyno
  • pirix-gh
  • sevinf
  • aqrln
  • prismabot