
prisma-upgrade-v7-driver-adapters
✓ Official★ 8by prisma · part of prisma/cursor-plugin
Driver Adapters. Reference when using this Prisma feature.
Driver Adapters. Reference when using this Prisma feature.
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
by prisma
Driver Adapters. Reference when using this Prisma feature.
npx skills add https://github.com/prisma/cursor-plugin --skill prisma-upgrade-v7-driver-adapters
Download ZIPGitHub8
Driver Adapters
Prisma v7 requires driver adapters for all database connections. This replaces the built-in Rust query engine.
Why Driver Adapters?
-
No more binary downloads
-
Smaller bundle size
-
Better serverless/edge compatibility
-
Uses native Node.js database drivers
-
More control over connection pooling
Available Adapters
Database Adapter Package Underlying Driver
PostgreSQL @prisma/adapter-pg pg
MySQL / MariaDB @prisma/adapter-mariadb mariadb
SQLite @prisma/adapter-better-sqlite3 better-sqlite3
Prisma Postgres @prisma/adapter-ppg @prisma/ppg
SQL Server @prisma/adapter-mssql mssql
Neon @prisma/adapter-neon @neondatabase/serverless
PlanetScale @prisma/adapter-planetscale @planetscale/database
Turso/libSQL @prisma/adapter-libsql @libsql/client
D1 (Cloudflare) @prisma/adapter-d1 Cloudflare D1
Migration from v6
Before (v6)
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient({
datasources: {
db: { url: process.env.DATABASE_URL }
}
})
After (v7)
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 })
Singleton Pattern
// lib/prisma.ts
import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined
}
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL!
})
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter })
if (process.env.NODE_ENV !== 'production') {
globalForPrisma.prisma = prisma
}
npm install @prisma/adapter-pgRun this in your project — your agent picks the skill up automatically.
Installation
PostgreSQL
npm install @prisma/adapter-pg
MySQL
npm install @prisma/adapter-mariadb mariadb
SQLite
npm install @prisma/adapter-better-sqlite3
Prisma Postgres
npm install @prisma/adapter-ppg @prisma/ppg
SQL Server
npm install @prisma/adapter-mssql mssql
Configuration
PostgreSQL
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 })
MySQL
import { PrismaClient } from '../generated/client'
import { PrismaMariaDb } from '@prisma/adapter-mariadb'
const adapter = new PrismaMariaDb({
host: 'localhost',
port: 3306,
connectionLimit: 5,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
})
const prisma = new PrismaClient({ adapter })
SQLite
import { PrismaClient } from '../generated/client'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
const adapter = new PrismaBetterSqlite3({
url: process.env.DATABASE_URL || 'file:./dev.db'
})
const prisma = new PrismaClient({ adapter })
Neon (Serverless PostgreSQL)
import { PrismaClient } from '../generated/client'
import { PrismaNeon } from '@prisma/adapter-neon'
const adapter = new PrismaNeon({
connectionString: process.env.DATABASE_URL
})
const prisma = new PrismaClient({ adapter })
Prisma Postgres
import { PrismaClient } from '../generated/client'
import { PrismaPostgresAdapter } from '@prisma/adapter-ppg'
const prisma = new PrismaClient({
adapter: new PrismaPostgresAdapter({
connectionString: process.env.PRISMA_DIRECT_TCP_URL,
}),
})
SQL Server
import { PrismaClient } from '../generated/client'
import { PrismaMssql } from '@prisma/adapter-mssql'
const adapter = new PrismaMssql({
server: 'localhost',
port: 1433,
database: 'mydb',
user: process.env.SQLSERVER_USER,
password: process.env.SQLSERVER_PASSWORD,
options: {
encrypt: true,
trustServerCertificate: true,
},
})
const prisma = new PrismaClient({ adapter })
Connection Pool Configuration
Driver adapters use the underlying driver's pool settings, which differ from v6 defaults.
PostgreSQL with custom pool
import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL,
// Pool configuration
max: 10, // Maximum connections
idleTimeoutMillis: 30000, // Close idle connections after 30s
connectionTimeoutMillis: 5000, // Connection timeout (v6 default was 5s)
})
Matching v6 behavior
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL,
connectionTimeoutMillis: 5000, // v6 used 5 second timeout
})
SSL Configuration
Accept self-signed certificates
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL,
ssl: {
rejectUnauthorized: false // Accept self-signed certs
}
})
Proper SSL configuration
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL,
ssl: {
ca: fs.readFileSync('/path/to/ca-cert.pem'),
rejectUnauthorized: true
}
})
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.