1

我的 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为与模式外壳一起使用?

在书中,他们给出了一个复数示例:http ://book.cakephp.org/2.0/en/plugins.html#plugin-configuration

4

2 回答 2

4

似乎 CakePHP 需要一个单一的插件名称,但要解决这个问题,您可以将name参数传递到 Schema Shell 中:

./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 {

重命名SchemaAppSchemainschema_14.php成功了。

两者都是使用 CakePHP v2.4.5 生成的。我能想到的唯一会导致这种情况的是在生成模式时bake从不同的目录(即使用不同的-app <app>参数)调用。

于 2014-03-11T11:33:39.137 回答