当我有一个Table
引用并在其上调用renameColumn()
时,我得到以下错误对:
迁移20130725141653在执行过程中失败。错误表#renameColumn()已被删除,因为它删除并重新创建了列。没有可用的修复程序,因为架构差异无法可靠地检测列是否已重命名,或者创建了一列并删除了另一列。
[原则\数据库应用程序\数据库应用程序异常]
表#renameColumn()已删除,因为它删除并重新创建了列。没有可用的修复程序,因为架构比较无法可靠地检测列是否已重命名,或者创建了一列而删除了另一列。
(通过doctrine migrations:migrate --dry-run
执行)
这对一个比较程序来说是有意义的。
我正在写一个迁移。我知道我想重命名列(保留数据)。有没有任何纯教义方法(我不想写一个原始查询)来实现这一点?
1条答案
按热度按时间whlutmcx1#
异常所涉及的'diff'是原始方案和更新后的方案之间的差异。这就是Doctrine生成SQL语句的方式--通过比较当前方案和修改后的方案。
Doctrine无法可靠地确定
$originalTable
中的someColumn
现在是$modifiedTable
中的someRenamedColumn
(请原谅错误的伪代码),因此删除了该功能。