Prisma Database Setup
Comprehensive guides for configuring Prisma ORM with various database providers.
When to Apply
Reference this skill when:
- Initializing a new Prisma project
- Switching database providers
- Configuring connection strings and environment variables
- Troubleshooting database connection issues
- Setting up database-specific features
- Generating and instantiating Prisma Client
Rule Categories by Priority
| Priority |
Category |
Impact |
Prefix |
| 1 |
Provider Guides |
CRITICAL |
provider names |
| 2 |
Prisma Postgres |
HIGH |
prisma-postgres |
| 3 |
Client Setup |
CRITICAL |
prisma-client-setup |
System Prerequisites
- Node.js 20.19.0+
- TypeScript 5.4.0+
Bun Runtime
If you're using Bun, run Prisma CLI commands with bunx --bun prisma ... so Prisma uses the Bun runtime instead of falling back to Node.js.
Supported Databases
| Database |
Provider String |
Notes |
| PostgreSQL |
postgresql |
Default, full feature support |
| MySQL |
mysql |
Widespread support, some JSON diffs |
| SQLite |
sqlite |
Local file-based, no enum/scalar lists |
| MongoDB |
mongodb |
Mongo-specific workflow; do not apply SQL driver-adapter guidance |
| SQL Server |
sqlserver |
Microsoft ecosystem |
| CockroachDB |
cockroachdb |
Distributed SQL, Postgres-compatible |
| Prisma Postgres |
postgresql |
Managed serverless database |
Configuration Files
Your configuration shape depends on the provider and Prisma major version:
- All providers use
prisma/schema.prisma.
- Prisma 7 SQL setups typically use
prisma.config.ts for datasource URLs.
- MongoDB projects should stay on Prisma 6.x, keep
url = env("DATABASE_URL") in the schema, and continue using the classic MongoDB setup.
Driver Adapters
The standard SQL workflow uses a driver adapter. Choose the adapter and driver for your database and pass the adapter to PrismaClient.
| Database |
Adapter |
JS Driver |
| PostgreSQL |
@prisma/adapter-pg |
pg |
| CockroachDB |
@prisma/adapter-pg |
pg |
| Prisma Postgres (Node.js) |
@prisma/adapter-pg |
pg |
| Prisma Postgres (edge/serverless) |
@prisma/adapter-ppg |
@prisma/ppg |
| MySQL / MariaDB |
@prisma/adapter-mariadb |
mariadb |
| SQLite |
@prisma/adapter-better-sqlite3 |
better-sqlite3 |
| SQLite (Turso/LibSQL) |
@prisma/adapter-libsql |
@libsql/client |
| SQL Server |
@prisma/adapter-mssql |
node-mssql |
MongoDB should not follow the Prisma 7 SQL adapter workflow. Use the latest Prisma 6.x release for MongoDB projects and do not install a SQL @prisma/adapter-* package for it.
Example (PostgreSQL):
import 'dotenv/config'
import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })
Prisma Client Setup (Required)
Prisma Client must be installed and generated for any database.
- Install Prisma CLI and Prisma Client:
``bash npm install prisma --save-dev npm install @prisma/client ``
- Add a generator block (
prisma-client requires an explicit output path):
``prisma generator client { provider = "prisma-client" output = "../generated" } ``
- Generate Prisma Client:
``bash npx prisma generate ``
- For SQL providers, instantiate Prisma Client with the database-specific driver adapter:
```typescript import { PrismaClient } from '../generated/client' import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL }) const prisma = new PrismaClient({ adapter }) ```
- Re-run
prisma generate after every schema change.
Quick Reference
PostgreSQL
datasource db {
provider = "postgresql"
}
generator client {
provider = "prisma-client"
output = "../generated"
}
MySQL
datasource db {
provider = "mysql"
}
generator client {
provider = "prisma-client"
output = "../generated"
}
SQLite
datasource db {
provider = "sqlite"
}
generator client {
provider = "prisma-client"
output = "../generated"
}
MongoDB
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
For MongoDB, stay on the latest Prisma 6.x line and keep the connection URL in schema.prisma. Do not move a MongoDB project to the Prisma 7 SQL adapter setup. If a MongoDB project asks about upgrading Prisma versions, route to the prisma-mongodb-upgrade skill (stay-on-v6 vs Prisma Next is the real decision; Prisma 7 is not an option).
Rule Files
See individual rule files for detailed setup instructions:
references/postgresql.md
references/mysql.md
references/sqlite.md
references/mongodb.md
references/sqlserver.md
references/cockroachdb.md
references/prisma-postgres.md
references/prisma-client-setup.md
How to Use
Choose the provider reference file for your database, then apply references/prisma-client-setup.md to complete client generation and adapter setup. For MongoDB, use references/mongodb.md instead of copying the SQL adapter examples or Prisma 7 config pattern.