使用 symfony 从 postgreSQL 创建数据库

creating database from postgreSQL with symfony

我正在使用 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 在我的本地计算机上显示为活动 运行ning。

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

我可以看到 PDOpdo_mysqlpdo_sqlite 但不是 pdo_pgsql

务必在app/config/database.php

中配置'default'

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

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

对于 Windows,pgsql 扩展应该与官方 PHP 发行版一起预下载。只需编辑 php.ini 并取消注释行 extension=pdo_pgsql.soextension=pgsql.so

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

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

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

  1. 系统属性 -> 高级选项卡 -> 环境变量
  2. 在 window 下半部分的 'System variables' 组中,滚动并找到 PATH 条目。
  3. Select 然后点击编辑
  4. 在现有条目的末尾,输入您的 postgres bin 目录的完整路径。 bin 文件夹应位于 postgres 安装目录的根目录中。
  5. 重新启动所有打开的命令提示符,或者为了确定,重新启动您的计算机。

这应该可以解决任何问题。有关详细信息,请参阅:

来源:

您应该将 pdo_pgsql 扩展添加到 [=13= 中 php 的 CLI 配置中]

yourPhpDirectory/cli/php.ini

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

  1. php.ini(用于 CLI 的那个)中启用扩展 php_pdo_pgsqlphp_pgsql

    extension=php_pdo_pgsql.dll
    extension=php_pgsql.dll
    
  2. 通过数据库管理工具(如 Adminer)进行测试,确保远程服务器的 "Port" 和 "Login Credentials" 正确。