prisma-driver-adapter-implementation
Required reference for Prisma ORM 7 SQL driver adapter work.
Skill by prismaOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/prisma-prisma-driver-adapter-implementation
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/prisma-driver-adapter-implementation
What's inside
- Skill name
prisma-driver-adapter-implementation- Description
- Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.
- License
- MIT
- Metadata
- author: prisma · version: 7.9.1
- Instructions
- 263 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Prisma SQL Driver Adapter Implementation
Use this guide with the exact `@prisma/driver-adapter-utils` version installed by the target Prisma release. Driver adapters are a protocol boundary: type-compatible code can still corrupt values, leak connections, or break transactions.
## When to Apply
- Implementing `SqlDriverAdapterFactory`, `SqlMigrationAwareDriverAdapterFactory`, `SqlDriverAdapter`, or `Transaction`
- Adding nested-transaction/savepoint support
- Mapping driver values, column metadata, bind arguments, or database errors
- Debugging `P2039`, transaction leaks, shadow-database failures, or adapter-specific query behavior
## Contract snapshot
```typescript
interface SqlDriverAdapterFactory extends AdapterInfo {
connect(): Promise<SqlDriverAdapter>
}
interface SqlMigrationAwareDriverAdapterFactory extends SqlDriverAdapterFactory {
connectToShadowDb(): Promise<SqlDriverAdapter>
}
interface SqlDriverAdapter extends AdapterInfo {
queryRaw(query: SqlQuery): Promise<SqlResultSet>
executeRaw(query: SqlQuery): Promise<number>
executeScript(script: string): Promise<void>
startTransaction(isolationLevel?: IsolationLevel): Promise<Transaction>
getConnectionInfo?(): ConnectionInfo
dispose(): Promise<void>
}
interface Transaction extends AdapterInfo {
readonly options: { usePhantomQuery: boolean }
queryRaw(query: SqlQuery): Promise<SqlResultSet>
executeRaw(query: SqlQuery): Promise<number>
commit(): Promise<void>
rollback(): Promise<void>
createSavepoint?(name: string): Promise<void>
rollbackToSavepoint?(name: string): Promise<void>
releaseSavepoint?(name: string): Promise<void>
}
```
`IsolationLevel` currently includes `READ UNCOMMITTED`, `READ COMMITTED`, `REPEATABLE READ`, `SNAPSHOT`, and `SERIALIZABLE`; validate what the concrete database supports.
## Priority rules
| Priority | Rule | Impact |
|----------|------|--------|
| CRITICAL | One dedicated connection per transaction | Prevents interleaving and leaks |
| CRITICAL | `commit`/`rollback` are lifecycle cleanup hooks | Prevents duplicate COMMIT/ROLLBACK |
| CRITICAL | Savepoints live on `Transaction`, not adapter-global depth | Makes nested scopes connection-local |
| CRITICAL | Preserve original database error code/message | Enables useful `P2039` fallback |
| HIGH | Map arguments and result metadata exactly | Prevents silent value corruption |
| HIGH | Shadow databases are isolated and always cleaned up | Makes Migrate safe |
| HIGH | Dispose only resources the adapter owns | Prevents shutting down caller-owned pools |
## Query implementation
`SqlQuery` contains `sql`, `args`, and parallel `argTypes`. Map each argument using both value and `ArgType`; do not discard type/arity information. Execute in the driver's array/tuple row mode so column order is stable.
```typescript
class ExampleQueryable {
readonly provider = 'postgres' as const
readonly adapterName = '@acme/adapter-example'
constructor(protected readonly connection: DriverConnection) {}
async queryRaw(query: SqlQuery): Promise<SqlResultSet> {
try {
const result = await this.connection.query({
text: query.sql,
values: query.args.map((value, index) =>
mapArg(value, query.argTypes[index]),
),
rowMode: 'array',
})
return {
columnNames: result.fields.map((field) => field.name),
columnTypes: result.fields.map(mapColumnType),
rows: result.rows,
}
} catch (error) {
throwAdapterError(error)
}
}
async executeRaw(query: SqlQuery): Promise<number> {
try {
const result = await this.connection.execute(
query.sql,
query.args.map((value, index) => mapArg(value, query.argTypes[index])),
)
return result.rowsAffected ?? 0
} catch (error) {
throwAdapterError(error)
}
}
}
```
### Result mapping
Return `columnNames`, `columnTypes`, and `rows` with identical lengths/order. Map driver metadata to `ColumnTypeEnum` deliberately:
- signed integer widths to `Int32`/`Int64`; preserve 64-bit values without JS number truncation
- decimal/numeric to `Numeric` using the representation expected by Prisma
- binary to `Uint8Array`/`Bytes`
- date-only, time-only, and timestamp to `Date`, `Time`, and `DateTime`
- UUID, JSON, enum, arrays, and provider-specific unknown values to their explicit types
- unsupported native types to `DriverAdapterError({ kind: 'UnsupportedNativeDataType', type })`
Test `null`, empty arrays, array element types, big integers, decimals, byte arrays, JSON, dates, and user-defined/unknown native types.
### Script execution
`executeScript` must execute a migration script as the provider expects. Prefer the driver's native multi-statement/script facility or a real SQL parser. Naively splitting on `;` breaks functions, triggers, quoted strings, and dialect-specific blocks.From prisma/skills, MIT.
More from prisma/skills
- 0.760score
prisma-compute
prismaOfficial
Deploy and operate apps on Prisma Compute with the Prisma 8 CLI.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-mongodb-upgrade
prismaOfficial
Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-orm-setup
prismaOfficial
Set up Prisma ORM in an application, connect its database, or troubleshoot the connection of an existing Prisma 6, 7, or 8 app.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-postgres-setup
prismaOfficial
Obtain or reuse a Prisma Postgres database and connect an application.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-upgrade-v7
prismaOfficial
Complete migration guide from Prisma ORM v6 to v7 covering all breaking changes.
SkillAFreshness: A★ 76Claude Code +9 - 0.756score
prisma-cli
prismaOfficial
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows.
SkillAFreshness: A★ 76Claude Code +9 - 0.745score
prisma-database-setup
prismaOfficial
Deprecated compatibility name for prisma-orm-setup.
SkillAFreshness: A★ 76Claude Code +9 - 0.715score
prisma-client-api
prismaOfficial
Prisma Client API reference covering model queries, filters, operators, and client methods.
SkillBFreshness: B★ 76Claude Code +9 - 0.700score
prisma-postgres
prismaOfficial
Deprecated compatibility name for prisma-postgres-setup.
SkillBFreshness: B★ 76Claude Code +9
Signals
- Stars
- 76
- Forks
- 7
- Open issues
- 1
- Last commit (this folder)
- Aug 4, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 7.9.1
- License
- MIT
- Repository
- github.com/prisma/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from prisma
- 0.760score
prisma-compute
prismaOfficial
Deploy and operate apps on Prisma Compute with the Prisma 8 CLI.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-mongodb-upgrade
prismaOfficial
Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-orm-setup
prismaOfficial
Set up Prisma ORM in an application, connect its database, or troubleshoot the connection of an existing Prisma 6, 7, or 8 app.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-postgres-setup
prismaOfficial
Obtain or reuse a Prisma Postgres database and connect an application.
SkillAFreshness: A★ 76Claude Code +9 - 0.760score
prisma-upgrade-v7
prismaOfficial
Complete migration guide from Prisma ORM v6 to v7 covering all breaking changes.
SkillAFreshness: A★ 76Claude Code +9 - 0.756score
prisma-cli
prismaOfficial
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows.
SkillAFreshness: A★ 76Claude Code +9
Cite this page
prisma-driver-adapter-implementation skill. Agent Mart. https://agentmart.dev/skills/prisma-prisma-driver-adapter-implementation (last updated 2026-10-24)