【问题标题】:console schema update and new tables控制台模式更新和新表
【发布时间】:2014-10-09 18:51:07
【问题描述】:

我正在尝试使用蛋糕模式更新 mysql 数据库。在旧数据库中,我有 2 个表。在我尝试更新到的新表中,有 2 个新表。

当我执行cake schema update时,它会抛出一个错误:

SQLSTATE[42S02]:找不到基表或视图:1146 表 'db.new_table' 不存在

很清楚,因为这两个新表不存在,所以 CakeConsole 应该先创建它们。

我使用的是 2.3 版。是否有任何选项可以纠正此错误?还是在以后的版本中解决了?

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    最后我升级到最新版本 (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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2010-10-29
      相关资源
      最近更新 更多