【问题标题】:How can I setup more than one PRISMA service, one for testing and one for development如何设置多个 PRISMA 服务,一个用于测试,一个用于开发
【发布时间】:2020-07-20 21:43:45
【问题描述】:

我希望有一个单独的数据库用于测试和开发。我想要实现的是拥有不止一项 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}

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

【问题讨论】:

    标签: mongodb docker testing prisma prisma-graphql


    【解决方案1】:

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

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

    按照以下步骤操作:

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

    在您的配置文件中,指定指向不同 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 挂钩,它将在git commit 之前运行,以始终确保您的prisma 客户端在您推送到生产之前始终具有生产端点。将以下部分添加到package.json

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多