prisma-database-setup
Guides de configuration pas à pas pour Prisma ORM sur PostgreSQL, MySQL, SQLite, MongoDB, SQL Server, CockroachDB et Prisma Postgres. Couvre la configuration de la source de données, la sélection de l'adaptateur de pilote et l'instanciation du client Prisma pour sept fournisseurs de bases de données. Prisma v7 nécessite des adaptateurs de pilote explicites (par exemple, @prisma/adapter-pg pour PostgreSQL) et un fichier prisma.config.ts pour les URL de connexion. Inclut des blocs de schéma de référence rapide et des vérifications préalables (Node.js 20.19.0+, TypeScript 5.4.0+)...
npx skills add https://github.com/prisma/skills --skill prisma-database-setupPrisma 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.tsfor 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:
npm install prisma --save-dev npm install @prisma/client -
Add a generator block (
prisma-clientrequires an explicit output path):generator client { provider = "prisma-client" output = "../generated" } -
Generate Prisma Client:
npx prisma generate -
For SQL providers, instantiate Prisma Client with the database-specific driver adapter:
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 generateafter 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.