Fix Prisma 7 adapter requirement - use SQLite adapter for both Next.js and DBAL

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-01-08 03:59:26 +00:00
parent 878f06b8f6
commit f19d04410d
2 changed files with 24 additions and 7 deletions

View File

@@ -31,7 +31,9 @@
"@aws-sdk/client-s3": "^3.958.0",
"@aws-sdk/lib-storage": "^3.958.0",
"@aws-sdk/s3-request-presigner": "^3.958.0",
"@prisma/adapter-better-sqlite3": "^7.2.0",
"@prisma/client": "^7.2.0",
"better-sqlite3": "^12.5.0",
"prisma": "^7.2.0",
"zod": "^4.2.1"
},

View File

@@ -1,4 +1,6 @@
import { PrismaClient } from '@prisma/client'
import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
import Database from 'better-sqlite3'
import { PrismaAdapterDialect, type PrismaAdapterOptions, type PrismaContext } from './types'
export function createPrismaContext(
@@ -6,13 +8,26 @@ export function createPrismaContext(
options?: PrismaAdapterOptions
): PrismaContext {
const inferredDialect = options?.dialect ?? inferDialectFromUrl(databaseUrl)
const prisma = new PrismaClient(
databaseUrl
? {
datasources: { db: { url: databaseUrl } },
} as any
: undefined
)
let prisma: PrismaClient
// For SQLite, we need to use the driver adapter
if (inferredDialect === 'sqlite') {
const dbPath = databaseUrl?.replace('file:', '') || '../../prisma/prisma/dev.db'
const db = new Database(dbPath)
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
const adapter = new PrismaBetterSqlite3(db)
prisma = new PrismaClient({ adapter } as any)
} else {
// For other databases, use the URL directly
prisma = new PrismaClient(
databaseUrl
? {
datasources: { db: { url: databaseUrl } },
} as any
: undefined
)
}
return {
prisma,