2013-02-05 71 views
0

我有一些CakePHP 2.3應用程序的插件,我使用內置的架構遷移來維護數據庫表結構。CakePHP 2.3控制檯架構:無法加載選定的架構

其中有些工作沒有問題,但對別人我得到以下錯誤:

Richs-MacBook-Pro:mhd rich$ ./Console/cake schema update -p PipPages 
Welcome to CakePHP v2.3.0 Console 
--------------------------------------------------------------- 
App : mhd 
Path: /Users/rich/sites/mhd/ 
--------------------------------------------------------------- 
Cake Schema Shell 
--------------------------------------------------------------- 
The chosen schema could not be loaded. Attempted to load: 
File: /Users/rich/sites/mhd/Plugin/PipPages/Config/Schema/schema.php 
Name: PipPage 

我只是想指出的幾件事情。我的插件叫做PipPages。在輸出中,它表示它試圖加載模式PipPage - 我是否應該以不同的方式命名我的插件?

我重複檢查了schema.php文件是否存在PipPages插件,但是可能該插件應該命名爲PipPage以使用模式shell?

在這本書中,他們給一個複數例如:http://book.cakephp.org/2.0/en/plugins.html#plugin-configuration

+0

上面的輸出顯示它試圖加載正確的插件(複數) – thaJeztah

+0

ok,但插件文件夾名稱是複數,但實際的文件類是該模式尋找單數(名稱:PipPage「位摘錄如上) - 這有意義嗎?這就像它期待一個單一的插件名稱 – BeesonBison

+0

好點,不知道。我們試圖將遷移(插件)集成到我們的工作流程中,但由於其對添加/修改外鍵約束和高級數據庫功能的有限支持而放棄。 – thaJeztah

回答

4

看起來好像CakePHP會期待一個奇異的插件名稱,但要解決這個問題,你可以通過name PARAM到架構殼牌:

./Console/cake schema update -p PipPages PipPages

這似乎允許更新運行沒有錯誤。

+0

這似乎是從CakePHP 2.4開始修復的 – BeesonBison

0

我剛剛遇到了一個類似的問題,剛纔有關模式不加載。不涉及特別的插件,只是更新一般的模式。

bash-3.2$ ./Console/cake schema update -s 14 

Welcome to CakePHP v2.4.5 Console 
--------------------------------------------------------------- 
App : app 
Path: /var/sites/e/example.com/public_html/app/ 
--------------------------------------------------------------- 
Cake Schema Shell 
--------------------------------------------------------------- 
The chosen schema could not be loaded. Attempted to load: 
File: /var/sites/e/example.com/public_html/app/Config/Schema/schema_14.php 
Name: App 

schema_14.php是我想升級到版本,但我想我會用不同的一個嘗試過。由於某種原因,schema_10.php實際上工作。這是錯誤的類名已被添加到模式文件。

schema_10.php

class AppSchema extends CakeSchema { 

schema_14.php

class Schema extends CakeSchema { 

schema_14.php重命名SchemaAppSchema的伎倆。

兩者都是使用CakePHP v2.4.5明確生成的。我能想到的唯一的原因是bake在生成模式時從不同的目錄中調用(即使用不同的-app <app>參數)。