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