如何从 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) 连接到主机数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Windows 10 上的容器连接到 docker 主机(Docker for Windows)

如何从 AWS SAM 本地 docker 实例连接到主机 MySQL?

如何使用 Docker Desktop for Windows 从主机连接到 Cassandra

无法从我的 Docker 容器内部连接到主机的 localhost

如何从 Windows 主机连接到 wsl2 内的 docker 容器内的应用程序?

docker从容器连接到主机隧道