2013-06-27 41 views
1

我有問題要與控制檯命令行烘烤,只在Postgres數據庫。CakePHP的Postgres的 - 默認的數據庫無法識別的烘烤時

我用:

  • 的Windows
  • CakePHP的2.3
  • 的PostgreSQL 8.4.8) 我的數據庫是一個外部服務器上(UNIX),和我的本地計算機上的其他部件。

我的應用程序,CakePHP的檢查似乎也不錯:

  • 你的PHP版本是5.2.8或更高版本。
  • 你的tmp目錄是可寫的。
  • 的FileEngine被用於核心高速緩存。若要更改配置編輯APP /配置/ core.php中
  • 你的數據庫配置文件是否存在。
  • 蛋糕是能夠連接到數據庫。

當我手動編寫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. 

感謝您的幫助,

西蒙。

+1

請提供您的database.php中或只是嘗試使用127.0.0.1而不是本地主機或反之亦然:本地主機,而不是127.0.0.1 – Vadim

+0

感謝您的回覆瓦迪姆。我忘記提及我的數據庫位於外部服務器(unix)以及本地計算機上的其他組件。 – Simon

+0

@Vadim,你的請求添加了一些東西,因爲我曾經有同樣的問題,但與MySql數據庫。我終於離開了,手動生成了所有組件。但我仍然有問題。 – Simon

回答

1

西門,我有這個確切的問題。最終,我意識到我的web服務器正在查看我的MAMP安裝中的php.ini文件,該文件安裝了postgres PDO驅動程序,但我的終端使用了我的本地php安裝,但沒有安裝。這就是爲什麼CakePHP檢查頁面說連接沒問題,但Bake Shell不起作用。 this question的第二個答案是經過幾個小時的可怕挫折之後我的得救。順便說一下,所有這些都是在升級到我的操作系統後發生的。祝你好運!

0

兩種情況之一是錯誤的:

  • 您的數據庫連接參數無效。嘗試通過命令行連接以驗證它們是否正常工作。
  • 您沒有啓用Postgres的驅動程序。檢查你的php.ini文件。
0

蛋氨酸在Windows 7同樣的問題,IIS7.5和PostgreSQL 9.4,CakePHP的2.6.3 我在我的程序文件安裝了PHP 5.3的x86/PHP/PHP5.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 

和一切工作