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

时间:2013-06-27 08:03:31

标签: php cakephp console cakephp-bake

我在使用控制台的命令行中烘焙时遇到问题,仅在Postgres数据库上。

我用:

  • 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.

感谢您的帮助,

西蒙。

3 个答案:

答案 0 :(得分:1)

西蒙,我有这个问题。最后,我开始意识到我的Web服务器正在查看我的MAMP安装中的php.ini文件,其中DID安装了postgres PDO驱动程序,但我的终端使用的是我的原生php安装,但没有。这就是为什么CakePHP检查页面说连接没问题,但是Bake Shell无法正常工作。对this question的第二个答案是经过几个小时的可怕挫折后的救赎。顺便说一句,所有这些都发生在升级到我的操作系统之后。祝你好运!

答案 1 :(得分:0)

两件事之一是错误的:

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

答案 2 :(得分:0)

在Windows 7,iis7.5,PostgreSql 9.4,cakephp 2.6.3上遇到同样的问题 我已经在我的程序文件x86 / php / php5.3中安装了php 5.3,所以我认为它在我的系统中随处可见...但只有我的IIS使用它,因为我发现。

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

extension=php_pgsql.dll
extension=php_pdo_pgsql.dll

一切正常