0

当我有Table参考并调用renameColumn()它时,我收到以下一对错误:

迁移 20130725141653 在执行期间失败。删除了错误 Table#renameColumn(),因为它删除并重新创建了列。没有可用的修复程序,因为模式差异无法可靠地检测列是否已重命名,或者是否创建了一列而删除了另一列。

[教义\DBAL\DBALException]

Table#renameColumn() 已被删除,因为它会删除并重新创建列。没有可用的修复程序,因为模式差异无法可靠地检测列是否已重命名,或者是否创建了一列而删除了另一列。

(通过执行doctrine migrations:migrate --dry-run

这很有意义......对于差异程序。

我正在写迁移。我知道我想要重命名列(保留数据)。是否有任何纯 Doctrine 方法(我不想编写原始查询)来实现这一目标?

4

1 回答 1

-1

异常所说的“差异”是您的原始架构和更新的架构之间的差异。这就是 Doctrine 生成 SQL 语句的方式——通过将当前模式与修改后的模式进行比较。

Doctrine 无法可靠地确定someColumnin$originalTable现在someRenamedColumn存在$modifiedTable(请原谅错误的伪代码),因此该功能已被删除。

于 2013-07-25T22:00:07.640 回答