【发布时间】:2020-06-16 06:08:19
【问题描述】:
我想向那些使用 Mysql + Doctrine ORM + Doctrine 迁移的人提出问题 我有一个协会:
/**
* @var User
*
* @ORM\ManyToOne(targetEntity="User")
* @ORM\JoinColumn(nullable=true)
*/
protected $sender;
(这里的重点是nullable=true。有些属性是故意留下的)
- 我做
migraions:diff- 用一块sender_id VARCHAR(255) DEFAULT NULL生成迁移 - 运行迁移
- 然后我再次
diff,预计没有新的迁移生成 - 但是没有,我看到新文件的行是
CHANGE sender_id sender_id VARCHAR(255) DEFAULT NULL
这意味着什么都不会改变,但是Mysql驱动下的doctrine dbal没有从实体注释中看到DEFAULT NULL
我尝试添加@ORM\Column(options={"default": NULL})。
这有助于防止 DEFAULT NULL 在迁移中发生,但 FK 和 Index 在这种情况下被删除了。
也尝试过添加columnDefinition="VARCHAR(255) DEFAULT NULL",但也没有用
你是怎么解决这个问题的?
【问题讨论】:
标签: php doctrine-orm doctrine-migrations