Doctrine找不到PostgreSQL PDO驱动程序?

时间:2012-11-29 14:27:52

标签: php postgresql symfony doctrine

我看到这个问题非常相似,但我安装了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

我错过了什么?

3 个答案:

答案 0 :(得分:2)

唉..

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

那对我有用的是什么

答案 1 :(得分:2)

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

doctrine:
    dbal:
        driver: "%database_driver%"

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

答案 2 :(得分:0)

首先,验证您的 php.ini 文件:必须启用扩展程序 php_pdo_pgsql php_pdo 。确保在 symfony项目正在使用的php.ini文件中应用此更改(我想您正在使用symfony中的工具应用程序/控制台),请在 localhost / path_to_your_project / web上进行检查/config.php 。您知道是否启用了此扩展来执行函数phpinfo()。

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

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