如何使用 Prisma 将读/写查询拆分到从/主数据源?

问题描述 投票:0回答:1

我将 Prisma 3.15 与 NestJS 结合使用,需要将查询拆分到两个不同的数据源。一个是只读副本,另一个是主数据库。

我不想在每次 prisma 调用时手动管理这些!

如何自动拆分它们?

我可以在 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;
  }
node.js nestjs prisma master-slave
1个回答
0
投票

嗨,我不知道你是否解决了这个问题,但是看看这篇文章 https://www.prisma.io/blog/read-replicas-prisma-client-extension-f66prwk56wow

© www.soinside.com 2019 - 2024. All rights reserved.