DoctrineMigrationsBundle 每次生成相同的迁移
DoctrineMigrationsBundle generates same migration every time
我有一个字段为 $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,然后再次 - 我收到迁移成功执行的消息。
这可能会永远持续下去。
这是数据库中具体字段的样子:
能否解释一下为什么每次都生成相同的迁移?
问题是处理 "unsigned" 选项与学说本身的错误。
目前在存储库中有一个关于此主题的开放错误报告:
https://github.com/doctrine/dbal/issues/2380
修复应该与 v2.6 一起发布
我有一个字段为 $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,然后再次 - 我收到迁移成功执行的消息。 这可能会永远持续下去。
这是数据库中具体字段的样子:
能否解释一下为什么每次都生成相同的迁移?
问题是处理 "unsigned" 选项与学说本身的错误。
目前在存储库中有一个关于此主题的开放错误报告: https://github.com/doctrine/dbal/issues/2380
修复应该与 v2.6 一起发布