我的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 :(得分:4)
似乎CakePHP期待一个单一的插件名称,但为了解决这个问题,你可以将name
param传递给Schema Shell:
./Console/cake schema update -p PipPages PipPages
这似乎允许更新无错误地运行。
答案 1 :(得分: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 {
在Schema
中将AppSchema
重命名为schema_14.php
就可以了。
两者都是使用CakePHP v2.4.5生成的。在生成模式时,我唯一可以想到的就是从bake
调用另一个目录(即使用不同的-app <app>
参数)。