如何从 docker (Prisma) 连接到主机数据库

Posted

技术标签:

【中文标题】如何从 docker (Prisma) 连接到主机数据库【英文标题】:How to connect to host database from docker (Prisma) 【发布时间】:2018-10-18 20:09:05 【问题描述】:

我用prisma init 创建了一个新的(本地)项目。但我无法连接到我的主机PostgreSQL 数据库。我尝试将主机设置为:

host: docker.for.mac.host.internal

但是当我参观游乐场时,我得到的只是error

找不到项目:'default$default

如何将 Prisma 连接到容器外在本地计算机上运行的数据库?

完整的 docker-compose.yml 看起来像:

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.8
    restart: always
    ports:
    - "4466:4466"
    environment:
      PRISMA_CONFIG: |
        port: 4466
        databases:
          default:
            connector: postgres
            host: docker.for.mac.host.internal
            port: '5432'
            database: mydb
            user: myusername
            password: ''
            migrations: false

【问题讨论】:

这在1.8.1 版本中有效吗?你的 CLI 版本是多少? 这不适用于 1.8.1 和 1.8.2。 CLI 版本为 1.8.0 您是否部署了默认服务?看起来您正在打开属于默认服务的 / 路由。你能访问/management API 吗?当您prisma deploy 一项新服务时会发生什么? 这是一个本地服务,所以“docker-compose up” - 然后在一个新窗口“prisma playground”。我可以访问 /management 并在那里运行查询 - listProjects 返回一个空数组。 看来你还没有部署服务 【参考方案1】:

您是否尝试过先部署?在终端中使用 prisma.yml 更改目录并部署您的 Prisma 服务器 $ cd [dir of prisma.yml] 然后$ prisma deploy

【讨论】:

以上是关于如何从 docker (Prisma) 连接到主机数据库的主要内容,如果未能解决你的问题,请参考以下文章