Prisma Postgres®
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)
Prisma Postgres is currently in Early Access and not yet suitable for production use. It doesn't perform any automated backups and thus there's a risk of total data loss.
Getting started with Prisma Postgres
The easiest way to get started with Prisma Postgres is the Quickstart.
Technical details
Here's an overview of the technical details of your Prisma Postgres instances:
- PostgreSQL version: 16
- Storage: Max 1GB
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 our announcement article.
Bundling with Prisma Accelerate and Pulse
During the Early Access period, 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 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())
Pricing
Prisma Postgres is free during Early Access. More details on our pricing page.
Temporary limitations
Here's a list of limitations that Prisma Postgres currently has. All of these are temporary and will be lifted in the future.
No automated backups (risk of total data loss)
Prisma Postgres doesn't perform automated backups yet. Hence, there's a risk of total data loss.
No direct TCP connection
You can only interact with Prisma Postgres through Prisma Accelerate's connection pool using HTTP. This means:
- You have to use Prisma ORM with the Accelerate Client extension to interact with Prisma Postgres from your application. Other ORMs and DB libraries like TypeORM, Sequelize or knex.js are not yet supported.
- You have to use Prisma Studio if you want to visually explore and edit your data. Other database GUIs like Postico or TablePlus are not yet supported.
Same resource allocation regardless of pricing plan
It's not yet possible to configure the size and resource allocation of your Prisma Postgres instance. All instances will have the same technical details, regardless of the pricing plan you chose.
Limited region support
Prisma Postgres will be gradually rolled out in new regions. If it is not yet available in your preferred region, you can simply subscribe to get notified when it becomes available by subscribing to notifications in the Region dropdown when setting up your Prisma Postgres instance in the Platform Console. We'll send you an email when new regions become available, so you can easily stay up to date.
Note: Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada, and used with their permission