Cakephp-postgres-烘焙时无法识别默认数据库


Cakephp postgres - default database unrecognized when baking

我在控制台的命令行中烘焙有问题,只在Postgres数据库上。

我使用:

  • Windows
  • Cakephp 2.3
  • PostgreSQL 8.4.8)我的数据库位于外部服务器(unix)上,其他组件位于本地计算机上

对于我的应用程序,CakePhp检查似乎很好:

  • 您的PHP版本是5.2.8或更高版本
  • 您的tmp目录是可写的
  • FileEngine用于核心缓存。要更改配置,请编辑APP/config/core.php
  • 您的数据库配置文件已存在
  • Cake能够连接到数据库

当我手动编写MVC代码时,应用程序可以检索数据。

当我使用带有consol的命令行时,我会收到以下消息:

    D:'wamp'www'mobilite'app>cake bake
    Welcome to CakePHP v2.3.5 Console
    ---------------------------------------------------------------
    App : app
    Path: D:'wamp'www'mobilite'app'
    ---------------------------------------------------------------
    Interactive Bake Shell
    ---------------------------------------------------------------
    [D]atabase Configuration
    [M]odel
    [V]iew
    [C]ontroller
    [P]roject
    [F]ixture
    [T]est case
    [Q]uit
    What would you like to Bake? (D/M/V/C/P/F/T/Q)
    > M
    ---------------------------------------------------------------
    Bake Model
    Path: D:'wamp'www'mobilite'app'Model'
    ---------------------------------------------------------------
    Use Database Config: (default/components)
    [default] >
    Error: Database connection "Postgres" is missing, or could not be created.

谢谢你的帮助,

西蒙。

西蒙,我遇到了这个问题。最终,我意识到我的web服务器正在查看我的MAMP安装中的php.ini文件,该文件确实安装了postgres PDO驱动程序,但我的终端使用的是我的原生php安装,但没有。这就是为什么CakePHP检查页面说连接正常,但Bake Shell不起作用。这个问题的第二个答案是,在经历了几个小时的极度沮丧之后,我得到了救赎。顺便说一句,所有这些都发生在我的操作系统升级之后。祝你好运

有两件事是错误的:

  • 您的数据库连接参数无效。尝试通过命令行进行连接,以验证它们是否正常工作
  • 您没有启用postgres驱动程序。检查php.ini文件

在windows 7、iis7.5、PostgreSql 9.4、cakehp2.6.3上遇到了相同的问题我已经在我的程序文件x86/php/php5.3中安装了php5.3,所以我认为它在我的系统中无处不在。。。但我发现只有我的IIS使用它。

在控制台中键入php-ini,它将显示控制台中使用的当前版本我的控制台显示我的php.ini来自C:''Program Files(x86)''IIIS Express''php''v5.5刚刚在这个php.ini 中添加

extension=php_pgsql.dll
extension=php_pdo_pgsql.dll

所有东西都在上运行