@@ -134,6 +134,7 @@ export type SchemaLoadOptions = {
134134 preserveTsFiles ?: boolean ;
135135 generatePermissionChecker ?: boolean ;
136136 previewFeatures ?: string [ ] ;
137+ prismaLoadPath ?: string ;
137138 prismaClientOptions ?: object ;
138139 generateNoCompile ?: boolean ;
139140} ;
@@ -263,7 +264,13 @@ export async function loadSchema(schema: string, options?: SchemaLoadOptions) {
263264 fs . cpSync ( dep , path . join ( projectDir , 'node_modules' , pkgJson . name ) , { recursive : true , force : true } ) ;
264265 } ) ;
265266
266- const PrismaClient = require ( path . join ( projectDir , 'node_modules/.prisma/client' ) ) . PrismaClient ;
267+ const prismaLoadPath = options ?. prismaLoadPath
268+ ? path . isAbsolute ( options . prismaLoadPath )
269+ ? options . prismaLoadPath
270+ : path . join ( projectDir , options . prismaLoadPath )
271+ : path . join ( projectDir , 'node_modules/.prisma/client' ) ;
272+ const prismaModule = require ( prismaLoadPath ) ;
273+ const PrismaClient = prismaModule . PrismaClient ;
267274
268275 let clientOptions : object = { log : [ 'info' , 'warn' , 'error' ] } ;
269276 if ( options ?. prismaClientOptions ) {
@@ -273,8 +280,6 @@ export async function loadSchema(schema: string, options?: SchemaLoadOptions) {
273280 // https://github.com/prisma/prisma/issues/18292
274281 prisma [ Symbol . for ( 'nodejs.util.inspect.custom' ) ] = 'PrismaClient' ;
275282
276- const prismaModule = loadModule ( '@prisma/client' , projectDir ) . Prisma ;
277-
278283 if ( opt . pulseApiKey ) {
279284 const withPulse = loadModule ( '@prisma/extension-pulse/node' , projectDir ) . withPulse ;
280285 prisma = prisma . $extends ( withPulse ( { apiKey : opt . pulseApiKey } ) ) ;
0 commit comments