gpt4 book ai didi

mongodb - 如何设置多个 PRISMA 服务,一个用于测试,一个用于开发

转载 作者:行者123 更新时间:2023-12-02 18:26:37 26 4
gpt4 key购买 nike

我想有一个单独的数据库用于测试和开发。我想要实现的是拥有多个 Prisma 服务,一个用于测试,一个用于正常开发。

这是我的 docker-compose.yml 文件

version: '3'
services:
prisma:
image: prismagraphql/prisma:1.34
restart: 'always'
ports:
- '4466:4466'
environment:
PRISMA_CONFIG: |
port: 4466
databases:
default:
connector: mongo
uri: ${MONGO_CONNECTION_STRING}
prisma_testing:
image: prismagraphql/prisma:1.34
restart: 'always'
ports:
- '4400:4400'
environment:
PRISMA_CONFIG: |
port: 4466
databases:
default:
connector: mongo
uri: ${TEST_MONGO_CONNECTION_STRING}

我在文档中找不到任何东西来实现这一点。是否有推荐的流程或配置来实现这一目标?

最佳答案

最简单的方法是在运行 prisma deploy 之前将 prisma 的端点更改为指向不同的 prisma 服务器。 .在撰写本文时,prisma已从 prisma 重命名至prisma1 .您可以找到更多详细信息here ,因此请确保您拥有 prisma1安装为 devDependency .

Prisma 在他们的文档 here 中解释了如何实现相同的目标。 .

请按照以下步骤操作:

  • 安装 prisma1作为 devDependency yarn add prisma1 -D ,
  • 生成 prisma 客户端并指定要使用的配置文件 npx prisma1 generate -p path/to/prisma.test.yml
  • 运行您的测试

  • 在您的配置文件中,指定指向不同 prisma 服务器的不同端点,您可能希望有一个用于测试,另一个用于生产。

    不同配置文件的内容可能如下所示:

    prisma.test.yml(用于运行本地测试)
    endpoint: http://127.0.0.1:4466
    datamodel: datamodel.prisma
    databaseType: document
    secret: u4r4secret

    generate:
    - generator: javascript-client
    output: ./generated/prisma-client/

    prisma.yml(用于生产用途)
    endpoint: http://prod-server-ip:4466
    datamodel: datamodel.prisma
    databaseType: document
    secret: u4r4secret

    generate:
    - generator: javascript-client
    output: ./generated/prisma-client/

    同样重要的是,不要忘记在将代码推送到生产环境之前重新生成 prisma 客户端。一种快速简便的方法是使用 git hooks。

    建议:

    使用 husky并添加 pre-commit钩子(Hook),它将在 git commit 之前运行,以始终确保您的 prisma 客户端在您投入生产之前始终具有生产端点。将以下部分添加到 package.json .

    "husky": {
    "hooks": {
    "pre-commit": "yarn prisma:generate -p path/to/prisma.yml"
    }
    }

    关于mongodb - 如何设置多个 PRISMA 服务,一个用于测试,一个用于开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61101376/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com