DoctrineMigrationsBundle每次都会生成相同的迁移

时间:2017-06-28 10:12:45

标签: mysql symfony doctrine-orm doctrine-migrations

我有一个字段为$usedMB的实体。我使用Doctrine2作为ORM和DoctrineMigrationsBundle进行数据库迁移。

/**
 * @ORM\Entity
 */
class DeviceStatus
{
    ...

    /**
     * @ORM\Column(type="float", nullable=true, options={"unsigned":true})
     */
    private $usedMB;

    ...
}

如果我执行命令php bin/console doctrine:migrations:diff,我会在迁移文件中获得以下行: ALTER TABLE device_status CHANGE used_mb used_mb DOUBLE PRECISION DEFAULT NULL 之后,我执行命令php bin/console doctrine:migrations:migrate,然后收到成功执行迁移的消息。

但问题是 - 如果我再次执行php bin/console doctrine:migrations:diff,我会在迁移文件中获得相同的行: ALTER TABLE device_status CHANGE used_mb used_mb DOUBLE PRECISION DEFAULT NULL 只是要指出 - 执行命令之间没有代码更改。

之后,我执行命令php bin / console doctrine:migrations:migrate,再次 - 我收到迁移执行成功的消息。 这可以永远持续下去。

这是DB中具体字段的外观: db field

有些人可以解释一下,为什么每次都会产生相同的迁移?

1 个答案:

答案 0 :(得分:1)

问题是处理带有doctrine本身的“unsigned”选项的错误。

目前在资源库中有关于此主题的开放式错误报告: https://github.com/doctrine/dbal/issues/2380

修复程序应与v2.6一起发布