Supported databases
Prisma ORM supports PostgreSQL and MongoDB. This page lists what each database gets, which managed providers work, and what is planned next.
Prisma ORM ships first-class support for PostgreSQL and MongoDB. PostgreSQL is the primary target and the one every extension targets today. SQLite ships as an experimental package, and MySQL is planned next.
Each database is its own package, and that package is an extension like any other: it plugs a database family and target into the Prisma ORM core. Install the one that matches your database and it brings the config, runtime, contract authoring, and migration tooling with it:
| Database | Package | Install |
|---|---|---|
| PostgreSQL | @prisma/orm-postgres | npm install @prisma/orm-postgres |
| MongoDB | @prisma/orm-mongo | npm install @prisma/orm-mongo |
| SQLite (experimental) | @prisma/orm-sqlite | npm install @prisma/orm-sqlite |
npx create-prisma@latest asks which database you use and installs the right package for you. See the PostgreSQL quickstart or the MongoDB quickstart.
What each database supports
The ORM client works the same on both databases. The lower-level surfaces follow the database's own query model:
| Capability | PostgreSQL | MongoDB |
|---|---|---|
| ORM client | Yes | Yes |
| SQL query builder | Yes | No |
| Pipeline builder | No | Yes |
| Raw queries | Raw SQL | Raw commands |
| Transactions | Yes | Not yet |
| Migrations | Yes | Yes |
| Extensions (pgvector, PostGIS, ParadeDB, and more) | Yes | Not yet |
| Middleware | Yes | Yes, except beforeCompile |
db.transaction() exists on the PostgreSQL client only. Prisma ORM does not support MongoDB transactions yet; for multi-document writes, use the MongoDB driver's session API alongside the client.
Middleware hooks are the same on both databases apart from beforeCompile, which rewrites the SQL AST and so exists only on PostgreSQL. The built-in lints and budgets middleware inspect SQL and run on PostgreSQL; the cache middleware runs on both. See which databases a middleware runs on.
Every extension in the directory lists the databases it targets. Today every extension that adds column types, operators, or index types targets PostgreSQL; the database packages and the cache middleware are the entries that list MongoDB.
Managed and hosted databases
Prisma ORM connects with a standard connection string, so any host that gives you one works.
| Provider | Database | Notes |
|---|---|---|
| Prisma Postgres | PostgreSQL | The default in create-prisma@latest. Provisioned from the CLI, with connection pooling built in. |
| Supabase | PostgreSQL | The Supabase extension adds the auth and storage tables and role-bound clients. |
| Neon, Railway, Render, AWS RDS, Cloud SQL, self-hosted | PostgreSQL | Any PostgreSQL server. Extensions such as pgvector and PostGIS need the server-side extension to be installable, which most managed providers include. |
| MongoDB Atlas, self-hosted MongoDB | MongoDB | Any MongoDB deployment reachable with a mongodb:// or mongodb+srv:// URL. |
Planned
SQLite is published as an experimental package (@prisma/orm-sqlite) without a quickstart yet; MySQL is planned next and is not part of the Prisma ORM release candidate. To stay on a supported path for those databases today, use Prisma ORM 7, which supports PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, CockroachDB, and MongoDB.
Because a database package is an extension, a community package can add a database Prisma does not ship. If you publish one, submit it to the directory and name the database it adds in the submission.
See also
- Prisma ORM 7 supported databases for the full version matrix of the current generally available release
- Prisma ORM overview for what changed and how to get started
- Extensions for the capabilities you can add to PostgreSQL
