1

DB テーブル構造を維持するために組み込みのスキーマ移行を使用する 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プラグイン用のファイルが存在することを 3 回確認しましたが、スキーマ シェルで動作するPipPagesようにプラグインに名前を付ける必要がありますか?PipPage

この本の中で、彼らは 1 つの複数形の例を挙げています: http://book.cakephp.org/2.0/en/plugins.html#plugin-configuration

4

2 に答える 2

4

CakePHP が単一のプラグイン名を期待しているように見えますが、これを回避するには、nameパラメーターをスキーマ シェルに渡すことができます。

./Console/cake schema update -p PipPages PipPages

これにより、エラーなしで更新を実行できるようです。

于 2013-02-06T08:24:12.287 に答える
1

スキーマがロードされないことに関連する同様の問題が発生しました。特にプラグインとは関係ありません。一般的にスキーマを更新するだけです。

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 {

in に名前を変更SchemaするAppSchemaschema_14.phpうまくいきました。

両方とも間違いなく CakePHP v2.4.5 を使用して生成されました。私が考えられる唯一の原因は、スキーマの生成時にbake別のディレクトリから (つまり、別のパラメーターを使用して) 呼び出されたことです。-app <app>

于 2014-03-11T11:33:39.137 に答える