2

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

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

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

    ...
}

如果我执行 command php bin/console doctrine:migrations:diff,我在迁移文件中得到以下行: ALTER TABLE device_status CHANGE used_mb used_mb DOUBLE PRECISION DEFAULT NULL 之后,我执行 command 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 dictionary:migrations:migrate,然后再次 - 我收到迁移成功执行的消息。这可能会永远持续下去。

这是 DB 中的具体字段的外观: 数据库字段

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

4

1 回答 1

2

问题是使用教义本身处理“未签名”选项的错误。

目前在存储库中有一个针对该主题的开放错误报告: https ://github.com/doctrine/dbal/issues/2380

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

于 2017-06-28T11:12:20.610 回答