【问题标题】:symfony pdo_pgsql doctrine:database:create does not use parameterssymfony pdo_pgsql 学说:数据库:创建不使用参数
【发布时间】:2016-11-02 17:43:14
【问题描述】:

我使用 Symfony 3.1.5,我正在尝试运行一个简单的

php bin/console doctrine:database:create

正如documentation 中所述。

我的parameters.yml

parameters:
    database_host: hhvm_db_1
    database_port: 5432
    database_name: dbname
    database_user: dbuser
    database_password: mypassword

我的config.yml

doctrine:
    dbal:
        driver:   pdo_pgsql
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

我收到以下错误消息:

  [Doctrine\DBAL\Exception\DriverException]
  An exception occured in driver: [32681]: could not translate host name "hhvm_db_1
  port=5432 dbname=postgres " to address: Name or service not known



  [Doctrine\DBAL\Driver\PDOException]
  [32681]: could not translate host name "hhvm_db_1 port=5432 dbname=postgres " to a
  ddress: Name or service not known



  [PDOException]
  [32681]: could not translate host name "hhvm_db_1 port=5432 dbname=postgres " to a
  ddress: Name or service not known

错误消息对我来说看起来很奇怪,因为它声明 dbname=postgres,而我在 parameters.yml 中指定了不同的数据库。我试图直接在 config.yml 中更改它,但这并没有改变任何事情。数据库主机和端口取自我的 parameters.yml。

我想教义只是使用 dbname 的默认参数,因为它由于某种原因无法解析我的参数。这可能是什么问题?

我认为这不是真正的问题,但我正在使用 hhvm 在 docker 容器中运行 symfony。上述错误消息中的hhvm_db_1 是第二个运行 Postgres 的容器。当我检查与 vanilla PHP 的连接时,它可以工作并且我可以连接到数据库。因此,可以从我的 Web 容器访问主机。

【问题讨论】:

  • 您是否可能包含另一个可能会覆盖 dbname 的配置文件?
  • 这是一个全新的 symfony 安装。只有一个parameters.yml 和不同环境(测试、开发、产品)的配置文件。它们都没有额外的数据库配置。但这就是我要求调试控制台脚本的原因。
  • IIRC,包括命令标志-vvv 会将日志记录增加到最大级别,这有助于调试。
  • 感谢您的帮助。这会同时输出堆栈跟踪,但并不能真正产生有洞察力的东西。

标签: php symfony doctrine-orm


【解决方案1】:

我发现我的系统出现问题,dsn 字符串包含空格而不是分号。

不起作用:

pgsql:host=hhvm_db_1 port=5432 dbname=postgres

工作正常:

pgsql:host=hhvm_db_1;port=5432;dbname=postgres

我最初的问题也由此解决了。 PDOPgSQL 的 DBAL 驱动程序使用 postgres 作为默认数据库来检查连接。

【讨论】:

    猜你喜欢
    • 2016-11-09
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2016-09-21
    • 2011-07-11
    • 2011-04-20
    相关资源
    最近更新 更多