Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
普里斯马1号&x2B;MongoDB Atlas部署到Heroku返回错误404_Mongodb_Docker_Heroku_Graphql_Prisma - Fatal编程技术网

普里斯马1号&x2B;MongoDB Atlas部署到Heroku返回错误404

普里斯马1号&x2B;MongoDB Atlas部署到Heroku返回错误404,mongodb,docker,heroku,graphql,prisma,Mongodb,Docker,Heroku,Graphql,Prisma,我在Heroku上部署了一个Prisma 1 GraphQL服务器应用程序,连接到MongoDB Atlas集群。 使用默认端点在本地运行prisma deployhttp://localhost:4466,操作已成功运行,所有架构都已正确生成。 但是,如果我用Heroku远程主机https://.herokuapp.com,prisma部署失败,返回此异常: 错误:GraphQL错误(代码:404) { “错误”:“\n\n\n\n错误\n\n\n” docker compose.yml #

我在Heroku上部署了一个Prisma 1 GraphQL服务器应用程序,连接到MongoDB Atlas集群。 使用默认端点在本地运行
prisma deploy
http://localhost:4466,操作已成功运行,所有架构都已正确生成。 但是,如果我用Heroku远程主机
https://.herokuapp.com
prisma部署
失败,返回此异常:

错误:GraphQL错误(代码:404) { “错误”:“\n\n\n\n错误\n\n\n” docker compose.yml

# The HTTP endpoint for your Prisma API
# Tried with https://<myapp>.herokuapp.com only too with the same result
endpoint: https://<myapp>.herokuapp.com/dinai/staging
secret: ${env:PRISMA_SERVICE_SECRET}
# Points to the file that contains your datamodel
datamodel: datamodel.prisma
databaseType: document
# Specifies language & location for the generated Prisma client
generate:
  - generator: javascript-client
    output: ../src/generated/prisma-client
# Ensures Prisma client is re-generated after a datamodel change.
hooks:
  post-deploy:
    - prisma generate
version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.34
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        managementApiSecret: ${PRISMA_MANAGEMENT_API_SECRET}
        databases:
          default:
            connector: mongo
            uri: mongodb+srv://${MONGO_DB_USER}:${MONGO_DB_PASSWORD}@${MONGO_DB_CLUSTER}/myapp?retryWrites=true&w=majority
            database: myapp
另外,也会出现一种奇怪的情况。在这两种情况下,如果我尝试使用GraphQL Playerd导航生成的API,单击选项卡“Schema”会返回一个错误。另一方面,选项卡“Docs”正在正确填充。显然,异常似乎阻止了脚本完成以生成其余的架构

有Prisma/Heroku经验的人提供一点帮助会很棒


提前感谢。

到目前为止,我仍然不清楚导致异常的详细原因。但深入查看Prisma文档,我发现在版本1中,有必要通过Prisma云代理应用程序。 因此,在Heroku上直接部署而不部署它可能会产生主要问题:基本上,服务器上没有运行任何Prisma容器服务

我所做的是一步一步地遵循关于如何在Prisma Cloud()上部署服务器的官方文档。正如指南中所示的示例,我已经有了自己的项目,它实际上分为两个不同的应用程序:一个用于客户端(前端),另一个用于API(后端)因此,为了生成新的API,我将后端API端点指向云生成的Prisma服务器的远程URL(按照教程创建的Heroku容器)。然后,只在Prisma服务器容器配置(由云自动生成)上保留管理机密API密钥另一方面,服务机密仅在后端应用程序上提供,最终我能够正确运行
prisma deploy
,并远程运行我的项目

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.34
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        # uncomment the next line and provide the env var PRISMA_MANAGEMENT_API_SECRET=my-secret to activate cluster security
        managementApiSecret: ${PRISMA_MANAGEMENT_API_SECRET}
        databases:
          default:
            connector: mongo
            uri: mongodb+srv://${MONGO_DB_USER}:${MONGO_DB_PASSWORD}@${MONGO_DB_CLUSTER}/myapp?retryWrites=true&w=majority
            database: myapp