Registry / database / prisma-sql

prisma-sql

JSON →
library1.83.0jsnpmunverified

Convert Prisma read queries to SQL and execute via postgres.js or better-sqlite3 for 2-7x performance gain over Prisma Client. Version 1.83.0, actively maintained with weekly releases. Maintains full Prisma API compatibility, generated types, and support for findMany, findFirst, findUnique, count, aggregate, groupBy, and PostgreSQL batch operations. Key differentiator: keeps Prisma's schema, migrations, and types while eliminating query engine runtime overhead for reads.

npm install prisma-sql
INSTALL
IMPORT
SIG · PRISMA-SQL
P
prisma-sql
databasejavascriptv1.83.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

speedExtension
import { speedExtension } from './generated/sql'
import { speedExtension } from 'prisma-sql'
The extension is generated; never import from prisma-sql package directly.
SpeedClient
import type { SpeedClient } from './generated/sql'
const { SpeedClient } = require('./generated/sql')
SpeedClient is a type-only export, use import type.
PrismaClient
import { PrismaClient } from '@prisma/client'
import { PrismaClient } from 'prisma-sql'
PrismaClient remains from @prisma/client, not from prisma-sql.

Shows setup: add generator, generate, extend PrismaClient with speedExtension for PostgreSQL, and run a query.

// 1. Add generator to schema.prisma: // generator sql { provider = "prisma-sql-generator" } // 2. Run: npx prisma generate // 3. Extend Prisma: import { PrismaClient } from '@prisma/client' import { speedExtension, type SpeedClient } from './generated/sql' import postgres from 'postgres' const sql = postgres(process.env.DATABASE_URL ?? '') const basePrisma = new PrismaClient() export const prisma = basePrisma.$extends( speedExtension({ postgres: sql }), ) as SpeedClient<typeof basePrisma> // Use: const users = await prisma.user.findMany({ where: { status: 'ACTIVE' } }) console.log(users)
Debug
Known issues
gotchaspeedExtension only accelerates READ queries; writes and certain query features fall back to Prisma engine.
fix
Ensure you still have a standard PrismaClient for writes and unsupported queries.
affects: >=1.0
gotchaspeedExtension must be applied last if using multiple extensions.
fix
Chain other $extends calls before speedExtension: prisma.$extends(A).$extends(B).$extends(speedExtension({...})).
affects: >=1.0
gotchaThe generated extension file is './generated/sql/index.ts', not importable from 'prisma-sql'.
fix
Import from './generated/sql' after running prisma generate.
affects: >=1.0
deprecatedSupport for Node.js 14 dropped in v1.50.0.
fix
Upgrade to Node >=16.
affects: >=1.50
gotchaCannot use $batch (PostgreSQL only) with an unsupported database driver.
fix
Use postgres.js as the driver when using $batch.
affects: >=1.0
Errors
Common errors & fixes
Cannot find module './generated/sql' or its corresponding type declarations.
Missing prisma generate step or wrong import path.
fix
Run 'npx prisma generate' and import from './generated/sql' (adjust relative path based on project structure).
Property 'speedExtension' does not exist on type 'typeof import(...)'.
Importing from 'prisma-sql' instead of from the generated file.
fix
Change import to './generated/sql' (or the actual path to generated outputs).
Type 'SpeedClient<...>' is not assignable to type 'PrismaClient<...>'
Type mismatch due to incorrect cast or missing type import.
fix
Use 'as SpeedClient<typeof basePrisma>' after $extends call.
Error: Cannot use $batch without postgres driver
Using $batch with SQLite or other unsupported driver.
fix
Switch to postgres.js as the database driver for $batch support.
Upgrade
Version history
1.83.0latest on npm
Audit
Dependencies
postgresoptionalRequired for PostgreSQL driver
better-sqlite3optionalRequired for SQLite driver
@prisma/clientrequiredPeer dependency for Prisma client
Agent activity
9 hits · last 30 days
node
8
Resources
prisma-sql — npm install prisma-sql · libregistry