我使用doctrine migration来更新我的数据库。我已经创建了一个实体,它以媒介形式保存和图像:
/**
* Avatar of the person
* @var string
*
* @ORM\Column(name="avatar", type="string", length=500000, nullable=true)
* @Assert\NotBlank()
* @Assert\Length(
* min = 0,
* max = 500000,
* minMessage = "Avatar must be at least {{ limit }} characters long",
* maxMessage = "Avatar cannot be longer than {{ limit }} characters"
* )
* @JMS\Groups({"user_avatar"})
*/
private $avatar;
因此,Doctrine迁移已生成此SQL以更新我的架构:
$this->addSql('ALTER TABLE s_user_identity ADD avatar MEDIUMTEXT DEFAULT NULL');
但现在每次检查我的实体和架构学说迁移之间的差异时都会看到更改
$this->addSql('ALTER TABLE s_user_identity CHANGE avatar avatar MEDIUMTEXT DEFAULT NULL');
即使接受此迁移,它仍然会建议我修改我的架构。
也许失败可以帮助你理解正在发生的事情
$this->addSql('ALTER TABLE s_user_identity CHANGE avatar avatar MEDIUMTEXT DEFAULT NULL COLLATE utf8_unicode_ci');
我也试过doctrine:shema:update
,它也看到了不同之处。
有没有人知道为什么教义会这样做?