php 在Doctrine2中重命名迁移脚本中的列

x33g5p2x  于 2022-12-17  发布在  PHP
关注(0)|答案(1)|浏览(88)

当我有一个Table引用并在其上调用renameColumn()时,我得到以下错误对:
迁移20130725141653在执行过程中失败。错误表#renameColumn()已被删除,因为它删除并重新创建了列。没有可用的修复程序,因为架构差异无法可靠地检测列是否已重命名,或者创建了一列并删除了另一列。
[原则\数据库应用程序\数据库应用程序异常]
表#renameColumn()已删除,因为它删除并重新创建了列。没有可用的修复程序,因为架构比较无法可靠地检测列是否已重命名,或者创建了一列而删除了另一列。
(通过doctrine migrations:migrate --dry-run执行)
这对一个比较程序来说是有意义的。
我正在写一个迁移。我知道我想重命名列(保留数据)。有没有任何纯教义方法(我不想写一个原始查询)来实现这一点?

whlutmcx

whlutmcx1#

异常所涉及的'diff'是原始方案和更新后的方案之间的差异。这就是Doctrine生成SQL语句的方式--通过比较当前方案和修改后的方案。
Doctrine无法可靠地确定$originalTable中的someColumn现在是$modifiedTable中的someRenamedColumn(请原谅错误的伪代码),因此删除了该功能。

相关问题