使用symfony从postgreSQL创建数据库

时间:2015-11-07 05:16:01

标签: php postgresql symfony pdo mapbender3

我正在使用mapbender3,它是在本地计算机上的symfony2中开发的。我被要求将应用程序连接到远程potgreSQL服务器。以下是 parameters.yml 文件中的配置。

parameters:
    database_driver:   pdo_pgsql
    database_host:     192.168.3.100
    database_port:     5434
    database_name:     idc_core
    database_path:     ~
    database_user:     *******
    database_password: *******

    mailer_transport:  smtp
    mailer_host:       localhost
    mailer_user:       ~
    mailer_password:   ~

但是当我运行命令时:

php app/console doctrine:database:create

我一直收到以下错误

could not create database for connection named "idc_core"
cound not find driver

我在Windows 7上使用WAMP服务器,驱动程序pdo_pgsql在我的本地计算机上显示活动并运行。

我已检查 phpinfo()并显示 pdo_pgsql 已启用,但当我在命令行中运行php -m以查看编译的模块时,

我可以看到 PDO pdo_mysql pdo_sqlite ,但 pdo_pgsql

3 个答案:

答案 0 :(得分:3)

务必在'default'

中配置app/config/database.php密钥

对于postgres,这将是'default' => 'postgres',

如果收到[PDOException] could not find driver错误,请检查您是否安装了正确的PHP扩展程序。您需要安装并启用pdo_pgsql.sopgsql.so。有关如何执行此操作的说明因操作系统而异。

对于Windows,pgsql扩展名应使用官方PHP发行版预先下载。只需修改php.ini,然后取消注释extension=pdo_pgsql.so行和extension=pgsql.so

此外,在php.ini中,请确保将extension_dir设置为正确的目录。它应该是PHP安装目录中名为extensionsext或类似的文件夹。

最后,将libpq.dllC:\wamp\bin\php\php5.*\复制到C:\wamp\bin\apache*\bin,然后通过WampServer界面重启所有服务。

如果您仍然遇到异常,则可能需要将postgres \bin目录添加到PATH

  1. 系统属性 - >高级标签 - >环境变量
  2. 在窗口下半部分的“系统变量”组中,滚动查找PATH条目。
  3. 选择它并单击编辑
  4. 在现有条目的末尾,将完整路径放到postgres bin目录中。 bin文件夹应位于postgres安装目录的根目录中。
  5. 重新启动任何打开的命令提示,或者确定,重新启动计算机。
  6. 这应该有希望解决任何问题。有关更多信息,请参阅:

    来源:https://stackoverflow.com/a/25336292/1045444

答案 1 :(得分:3)

您应该将 pdo_pgsql 扩展名添加到您的php的 CLI 配置

  

yourPhpDirectory / CLI / php.ini中

CLI 使用此配置在命令行中工作,而不是apache。这就是phpinfo();向您显示 pdo_pgsql php -m的原因。同样在Windows操作系统下,您应该重新启动命令行工具,以便在任何配置更改后查看差异。

答案 2 :(得分:2)

  1. php_pdo_pgsql(CLI的一个)中启用扩展php_pgsqlphp.ini

    extension=php_pdo_pgsql.dll
    extension=php_pgsql.dll
    
  2. 确保" Port"和#34;登录凭证"通过从Adminer等数据库管理工具进行测试,远程服务器是正确的。