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

标签 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/consoledoctrine:migrations:migrate,然后再次 - 我收到迁移成功执行的消息。 而且这种情况可能会永远持续下去。

这是数据库中具体字段的样子: db field

能否解释一下为什么每次都会生成相同的迁移?

最佳答案

问题是处理原则本身的“无符号”选项的错误。

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

该修复应该随 v2.6 一起发布

关于mysql - DoctrineMigrationsBundle 每次都会生成相同的迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44799621/

相关文章:

php - 用 mysql 路由器照亮数据库连接

php - 期望学说查询生成器有一个结果或没有结果,我应该使用什么?

arrays - Twig 中的输出数组

PHP mySQLi real_escape_string 不适用于撇号

mysql - SQL:子查询?拉柱使用条件

php - Doctrine 2 多个选择元素、别名、日期格式

php - 无法识别 ObjectManager(声明必须与 FixtureInterface->load 兼容)

mysql - 如何在学说中左连接子选择

php - 当 Doctrine 不允许我将复合主键与另一个实体的外键关联时,如何对 ER 图进行建模?

mysql - 检查如何进行,我遇到问题