Skip to main content

prisma-upgrade-v7-driver-adapters

Driver Adapters. Reference when using this Prisma feature.

설치로 이동

소스 정보

저장소
prisma/cursor-plugin
최근 소스 활동
2026년 2월 6일 14:17
감지된 SKILL.md 언어
영어
스타
9
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
prisma-upgrade-v7-driver-adapters
description
Driver Adapters. Reference when using this Prisma feature.
license
MIT
metadata
{"author":"prisma","version":"7.0.0"}
# 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 | ## Installation ### PostgreSQL ```bash npm install @prisma/adapter-pg ``` ### MySQL ```bash npm install @prisma/adapter-mariadb mariadb ``` ### SQLite ```bash npm install @prisma/adapter-better-sqlite3 ``` ### Prisma Postgres ```bash npm install @prisma/adapter-ppg @prisma/ppg ``` ### SQL Server ```bash npm install @prisma/adapter-mssql mssql ``` ## Configuration ### PostgreSQL ```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 }) ``` ### MySQL ```typescript 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 ```typescript 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) ```typescript 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 ```typescript 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 ```typescript 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 ```typescript 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 ```typescript const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL, connectionTimeoutMillis: 5000, // v6 used 5 second timeout }) ``` ## SSL Configuration ### Accept self-signed certificates ```typescript const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL, ssl: { rejectUnauthorized: false // Accept self-signed certs } }) ``` ### Proper SSL configuration ```typescript const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL, ssl: { ca: fs.readFileSync('/path/to/ca-cert.pem'), rejectUnauthorized: true } }) ``` ## Migration from v6 ### Before (v6) ```typescript import { PrismaClient } from '@prisma/client' const prisma = new PrismaClient({ datasources: { db: { url: process.env.DATABASE_URL } } }) ``` ### After (v7) ```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 }) ``` ## Singleton Pattern ```typescript // 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 } ```
GitHub에서 보기