【问题标题】:PhpStorm Docker PHPUnit DatabasePhpStorm Docker PHPUnit 数据库
【发布时间】:2018-07-17 00:33:18
【问题描述】:
  • setupPhpStorm:PHP、PHPUnit 和 Docker
  • 我在 PhpStorm/数据库查看器中看到了架构
  • 我可以在我的应用程序中使用数据库:注册等。
  • 我可以在 PhpStorm 中运行 phpunit
  • 但如果我想在测试中使用数据库,则会收到以下错误:

Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo 失败:名称无法解析 (SQL:从tablename中选择*)

测试在容器中工作但在 IDE 中中断。 您知道 PhpStorm 中的问题是什么?

【问题讨论】:

  • 你找到解决办法了吗?
  • 我也在寻找解决方案
  • 我终于解决了这个问题。主机名中有一个 nbsp 字符....

标签: mysql laravel docker phpunit phpstorm


【解决方案1】:

您是否使用 docker-compose(并且您的数据库是否在不同的容器中运行)?

Check if your CLI Interpreter is running with docker-compose settings

【讨论】:

  • 是的,我在不同的容器中使用 docker-compose 和数据库。
  • 确保您的 mysql 容器正在运行。似乎 Phpstorm 不会自行启动 mysql 容器
【解决方案2】:

我有同样的问题并找到了解决方案:

转到:

Settings > Languages & Frameworks > PHP > Test Frameworks

打开:

Edit docker container settings (you need push on folder icon)

在打开的窗口中,您会找到“链接”部分,从列表中添加您的数据库容器,然后完美保存所有作品!


如果您收到不同网络配置的错误,请更新您的 docker-compose.yml,在每个容器上添加以下语句:

network_mode: bridge

【讨论】:

    【解决方案3】:

    我遇到了这个确切的问题。假设您已经设置了 Docker 容器和 PHP 解释器,这就是我让它连接到 MySQL 容器的方式:

    1. 从 CLI 运行 docker network ls 并看到“lighthouse_default”网络
    2. 转到 PHP > 测试框架并在我的 Docker 容器上编辑(单击文件夹)
    3. 将网络模式设置为“lighthouse_default”
    4. 将 lighthouse_mysql_1 图像添加到链接部分

    显然,在您的情况下,网络名称可能会有所不同。真正的重点是我必须确保我使用的是正确的网络并且确保数据库映像位于容器链接中。

    【讨论】:

    • 这也为我解决了 laradock 的问题(步骤 1-3,跳过了步骤 4)。网络名称是“laradock_backend”
    猜你喜欢
    • 2018-09-02
    • 2020-01-04
    • 2018-11-09
    • 2012-08-01
    • 2016-02-04
    • 2018-03-24
    • 2011-07-25
    • 2016-10-21
    • 2016-01-04
    相关资源
    最近更新 更多