From f19d04410d9a6ee571d25e72f57f816873c263c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 8 Jan 2026 03:59:26 +0000 Subject: [PATCH] Fix Prisma 7 adapter requirement - use SQLite adapter for both Next.js and DBAL Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com> --- dbal/development/package.json | 2 ++ .../src/adapters/prisma/context.ts | 29 ++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/dbal/development/package.json b/dbal/development/package.json index 73d23094d..5859882e0 100644 --- a/dbal/development/package.json +++ b/dbal/development/package.json @@ -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" }, diff --git a/dbal/development/src/adapters/prisma/context.ts b/dbal/development/src/adapters/prisma/context.ts index d9916b393..e07930d44 100644 --- a/dbal/development/src/adapters/prisma/context.ts +++ b/dbal/development/src/adapters/prisma/context.ts @@ -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,