我试图用cake架构更新mysql数据库。在旧数据库中,我有2个表。在我尝试更新的新版本中,有2个新表。
当我执行cake schema update
时,会抛出错误:
SQLSTATE [42S02]:未找到基表或视图:1146表' db.new_table'不存在
很明显,因为那两个新表并不存在,所以CakeConsole应该先创建它们。
我正在使用2.3版。有没有选项来纠正这个错误?还是在以后的版本中解决了?
答案 0 :(得分:0)
最后我升级到最新版本(2.5.5)。现在,架构更新完美无缺。因为SchemaShell.php的第379-393行有一些变化会检查是否存在表格。
if (empty($table)) {
foreach ($compare as $table => $changes) {
if (isset($compare[$table]['create'])) {
$contents[$table] = $db->createSchema($Schema, $table);
} else {
$contents[$table] = $db->alterSchema(array($table => $compare[$table]), $table);
}
}
} elseif (isset($compare[$table])) {
if (isset($compare[$table]['create'])) {
$contents[$table] = $db->createSchema($Schema, $table);
} else {
$contents[$table] = $db->alterSchema(array($table => $compare[$table]), $table);
}
}