Overview
Prisma Postgres is a managed PostgreSQL database service that easily lets you create a new database, interact with it through Prisma ORM, and build applications that start small and cheap but can scale to millions of users.
It supports the following workflows:
- Schema migrations and queries (via Prisma ORM)
- Connection pooling and caching (via Prisma Accelerate)
- Real-time database change events (via Prisma Pulse)
Billing
Usage-based pricing
Prisma Postgres charges for:
- number of operations
- storage (in GiB)
An operation is counted each time you do a create, read, update or delete with your Prisma Postgres database.
This allows you to intuitively relate your database usage to your own product usage and user behavior.
Learn more on our pricing page.
Spend limits
Prisma Postgres allows you to set limits to ensure you never get a surprise bill. You'll receive alerts when you reach 75% of your set limit, and if you reach 100%, your database will be paused. This ensures you'll never have an unexpected bill, and you can always be in complete control of your spending.
Bundling with Prisma Accelerate and Pulse
Prisma Postgres comes bundled with Prisma Accelerate and Prisma Pulse.
Using the Client extension for Prisma Accelerate (required)
Because all traffic to Prisma Postgres is routed through Accelerate's connection pool, your project must have the @prisma/extension-accelerate
npm package installed. The extension then needs to be applied to the PrismaClient
instance you use to interact with your database:
import { PrismaClient } from '@prisma/client'
import { withAccelerate } from '@prisma/extension-accelerate'
const prisma = new PrismaClient()
.$extends(withAccelerate())
Using the Client extension for Prisma Pulse (optional)
Pulse is able to deliver real-time events from your Prisma Postgres database to your application via Prisma Client. If you want to make use of this functionality, you'll need to enable Pulse in your project in the install the @prisma/extension-pulse
npm library in your project and apply the extension to your PrismaClient
instance:
import { PrismaClient } from '@prisma/client'
import { withAccelerate } from '@prisma/extension-accelerate'
import { withPulse } from '@prisma/extension-pulse'
const prisma = new PrismaClient()
.$extends(withAccelerate())
.$extends(withPulse())
Technical details
PostgreSQL version
Prisma Postgres is based PostgreSQL v17.
Architecture
Prisma Postgres uses a unique architecture to deliver unmatched efficiency, safety and ease of use. It is deployed on bare metal servers using unikernels (think: "hyper-specialized operating systems").
Learn more about the architecture in this article: Prisma Postgres®: Building a Modern PostgreSQL Service Using Unikernels & MicroVMs.