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

Mongodb 如何设置多个PRISMA服务,一个用于测试,一个用于开发,mongodb,docker,testing,prisma,prisma-graphql,Mongodb,Docker,Testing,Prisma,Prisma Graphql,我想有一个单独的数据库用于测试和开发。我试图实现的是拥有多个Prisma服务,一个用于测试,一个用于正常开发 这是我的docker-compose.yml文件 我在文档中找不到实现这一点的任何东西。是否有实现此目的的推荐流程或配置?最简单的方法是在运行prisma deploy之前将prisma的端点更改为指向不同的prisma服务器。截至撰写本文时,prisma已从prisma重命名为prisma1。您可以找到更多详细信息,因此请确保已将prisma1安装为devDependency Pris

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

这是我的docker-compose.yml文件


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

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

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

请遵循以下步骤:

  • 安装
    prisma1
    作为开发依赖
    纱线添加prisma1-D
  • 生成prisma客户端并指定要使用的配置文件
    npx prisma1 Generate-p path/to/prisma.test.yml
  • 运行您的测试
  • 在配置文件中,指定指向不同prisma服务器的不同端点,您可能希望一个用于测试,另一个用于生产

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

    prisma.test.yml(用于运行本地测试)

    prisma.yml(生产用)

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

    建议:

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

    “哈士奇”:{
    “挂钩”:{
    “预提交”:“prisma:generate-p path/to/prisma.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}
    
    endpoint: http://127.0.0.1:4466
    datamodel: datamodel.prisma
    databaseType: document
    secret: u4r4secret
    
    generate:
        - generator: javascript-client
          output: ./generated/prisma-client/
    
    endpoint: http://prod-server-ip:4466
    datamodel: datamodel.prisma
    databaseType: document
    secret: u4r4secret
    
    generate:
        - generator: javascript-client
          output: ./generated/prisma-client/