【问题标题】:Doctrine can't find the PostgreSQL PDO driver?Doctrine 找不到 PostgreSQL PDO 驱动?
【发布时间】:2012-11-29 14:27:52
【问题描述】:

我看到这个问题非常相似,但我安装了 PDO 和 pdo_pgsql

这是我的错误信息:

 php app/console doctrine:mapping:convert yml ./src/Vendor/Bundle/MyBundle/Resources/config/doctrine/metadata/orm --from-database --force



  [PDOException]         
  could not find driver  



doctrine:mapping:convert [--filter="..."] [--force] [--from-database] [--extend[="..."]] [--num-spaces[="..."]] [--namespace[="..."]] [--em[="..."]] to-type dest-path 

这是我的 config.yml 设置

doctrine:
    dbal:
      connections:
        my_database:
          driver:   pdo_pgsql
          port:     5432
          dbname:   blah
          user:     foo
          password: bar
          charset:  UTF8

主机在prod和dev yaml文件中这样配置

doctrine:
    dbal:
      connections:
        my_database:
          host: localhost

在命令行运行php -m我看到PDO、pdo_pgsql和pgsql都安装好了

PDO
pdo_pgsql
pgsql

我错过了什么?

【问题讨论】:

    标签: php postgresql symfony doctrine


    【解决方案1】:

    呃……

    您必须先在 parameters.yml 文件中设置默认数据库

    这对我有用

    【讨论】:

      【解决方案2】:

      在 Symfony 2.7 或更高版本中,通过编辑 app/config/config.yml 文件将其留给指示驱动程序的数据库来解决问题:

      doctrine:
          dbal:
              driver: "%database_driver%"
      

      当使用不同驱动程序的多个数据库时,此解决方案也很有用,例如,一个 MySQL 数据库,另一个 PostgreSQL 数据库,...

      【讨论】:

        【解决方案3】:

        首先,验证您的 php.ini 文件:必须启用扩展名 php_pdo_pgsqlphp_pdo。确保您在 symfony 项目 正在使用的 php.ini 文件上应用此更改(我想您正在使用来自 symfony 的工具 app/console),在 localhost/path_to_your_project/web 上检查/config.php。执行 phpinfo() 函数即可知道是否启用了此扩展。

        这个命令也很有帮助:php -m。它在控制台上列出了所有加载的 php 模块。

        提示:查看您的 Apache 错误日志,您的扩展程序的负载可能有问题。该文件根据您的服务器配置定位。

        【讨论】:

          猜你喜欢
          • 2011-11-19
          • 1970-01-01
          • 2016-08-05
          • 2017-11-07
          • 1970-01-01
          • 2020-08-31
          • 1970-01-01
          • 2014-07-23
          • 2013-04-25
          相关资源
          最近更新 更多