{"id":716,"hash":"324a971926aee97746d384a2c32f55394dcc6ff04de042dca8bc63d3bc881ce8","pattern":"PrismaClientInitializationError: `PrismaClient` needs to be constructed with a non-empty, valid `PrismaClientOptions`:","full_message":"I created schema.prisma and schema.prisma\n\nschema.prisma:\n\ngenerator client {\n  provider = \"prisma-client\"\n  engineType = \"client\"\n  output   = \"./generated/main\"\n}\n\ndatasource db {\n  provider = \"postgresql\"\n}\n\nschemaSA.prisma:\n\ngenerator client {\n    provider = \"prisma-client\"\n    engineType = \"client\"\n    output   = \"./generated/superadmin\"\n}\n\ndatasource db {\n    provider  = \"postgresql\"\n}\n\nThen I created schema.config.ts and schemaSA.config.ts\n\nschema.config.ts\n\n/** @format */\n\nimport 'dotenv/config';\nimport { defineConfig } from 'prisma/config';\n\n// Main Admin Database Configuration\nexport default defineConfig({\n  schema: 'prisma/schema.prisma',\n  migrations: {\n    path: 'prisma/migrations',\n  },\n  datasource: {\n    url: process.env.DATABASE_URL as string,\n  }\n});\n\nschemaSA.config.ts\n\n/** @format */\n\nimport 'dotenv/config';\nimport { defineConfig } from 'prisma/config';\n\n// Super Admin Database Configuration\nexport default defineConfig({\n  schema: 'prisma/schemaSA.prisma',\n  migrations: {\n    path: 'prisma/migrationsSA',\n  },\n  datasource: {\n    url: process.env.DATABASE_URL_SUPER_ADMIN as string,\n  },\n});\n\nThen I created main-prisma.service.ts and superadmin-prisma.service.ts\n\nmain-prisma.service.ts\n\nimport { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';\nimport { PrismaClient } from 'prisma/generated/main';\nimport { PrismaPg } from '@prisma/adapter-pg';\nimport { readReplicas } from '@prisma/extension-read-replicas';\n\n@Injectable()\nexport class MainPrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {\n  constructor() {\n    const adapter = new PrismaPg({\n      connectionString: process.env.DATABASE_URL_ADMIN_POOLING as string,\n    });\n\n    super({ adapter });\n\n    // Create replica clients with adapters\n    const replicaAdapter1 = new PrismaPg({\n      connectionString: process.env.DATABASE_REPLICA_ADMIN_URL_1 as string,\n    });\n\n    const replicaAdapter2 = new PrismaPg({\n      connectionString: process.env.DATABASE_REPLICA_ADMIN_URL_2 as string,\n    });\n\n    const replicaClient1 = new PrismaClient({ adapter: replicaAdapter1 });\n    const replicaClient2 = new PrismaClient({ adapter: replicaAdapter2 });\n\n    // Extend with read replicas\n    this.$extends(\n      readReplicas({\n        replicas: [replicaClient1, replicaClient2],\n      }),\n    );\n  }\n\n  async onModuleInit() {\n    await this.$connect();\n  }\n\n  async onModuleDestroy() {\n    await this.$disconnect();\n  }\n}\n\nsuperadmin-prisma.service.ts\n\nimport { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';\nimport { PrismaClient } from 'prisma/generated/superadmin';\nimport { PrismaPg } from '@prisma/adapter-pg';\nimport { readReplicas } from '@prisma/extension-read-replicas';\n\n@Injectable()\nexport class SuperAdminPrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {\n  constructor() {\n    const adapter = new PrismaPg({\n      connectionString: process.env.DATABASE_URL_SUPER_ADMIN_POOLING as string,\n    });\n\n    super({ adapter });\n\n    // Create replica clients with adapters\n    const replicaAdapter1 = new PrismaPg({\n      connectionString: process.env.DATABASE_REPLICA_SUPER_ADMIN_URL_1 as string,\n    });\n\n    const replicaAdapter2 = new PrismaPg({\n      connectionString: process.env.DATABASE_REPLICA_SUPER_ADMIN_URL_2 as string,\n    });\n\n    const replicaClient1 = new PrismaClient({ adapter: replicaAdapter1 });\n    const replicaClient2 = new PrismaClient({ adapter: replicaAdapter2 });\n\n    // Extend with read replicas\n    this.$extends(\n      readReplicas({\n        replicas: [replicaClient1, replicaClient2],\n      }),\n    );\n  }\n\n  async onModuleInit() {\n    await this.$connect();\n  }\n\n  async onModuleDestroy() {\n    await this.$disconnect();\n  }\n}\n\nTHen I generated prisma client using commands:\n\nnpx prisma generate\n\nnpx prisma generate --schema=./prisma/schemaSA.prisma --config=./schemaSA.config.ts\n\nHere, I have pasted the picture of the error in terminal:","ecosystem":"npm","package_name":"postgresql","package_version":null,"solution":"In Prisma 7 and later, you must construct the client with an adapter or accelerate URL. For example, with PostgreSQL:\n\nimport { PrismaClient } from '@prisma/client';\nimport { PrismaPg } from '@prisma/adapter-pg';\n\nconst adapter = new PrismaPg({\n  connectionString: process.env.DATABASE_URL!,\n});\n\nconst prisma = new PrismaClient({ adapter });\n\nOr, if you want Rust‑free direct connection via accelerate:\n\nconst prisma = new PrismaClient({\n  accelerateUrl: process.env.DATABASE_URL!,\n});","confidence":0.95,"source":"stackoverflow","source_url":"https://stackoverflow.com/questions/79845075/prismaclientinitializationerror-prismaclient-needs-to-be-constructed-with-a-n","votes":12,"created_at":"2026-04-19T04:51:32.039392+00:00","updated_at":"2026-04-19T04:51:32.039392+00:00"}