我将 Prisma 3.15 与 NestJS 结合使用,需要将查询拆分到两个不同的数据源。一个是只读副本,另一个是主数据库。
如何自动拆分它们?
我可以在 PrismaService 中定义两个单独的客户端,如下所示:
@Injectable()
export class PrismaService implements OnModuleInit {
constructor(
private readClient: PrismaClient,
private writeClient: PrismaClient
) {
this.readClient = new PrismaClient({
datasources: {db: {url: process.env.PRISMA_READ_DB_URL}},
});
this.writeClient = new PrismaClient({
datasources: {db: {url: process.env.PRISMA_WRITE_DB_URL}},
});
}
我可以像这样覆盖 prisma 模块吗?
get user() {
// Do something with the user!!!
return this.readClient.user;
}
嗨,我不知道你是否解决了这个问题,但是看看这篇文章 https://www.prisma.io/blog/read-replicas-prisma-client-extension-f66prwk56wow