我已经在互联网、书籍和论坛上搜索了这个问题的答案,希望这里有人能提供帮助。
我有一个标准的 Symfony 2 项目设置,在教义中使用实体注释。我遇到的问题是我的任何包含 datetime 类型的实体都希望不断迁移。因此,在初始迁移到数据库后,我可以重新运行 docrine:schema:update --dump-sql ,但我仍然看到:
ALTER TABLE log CHANGE date date DATETIME NOT NULL;
ALTER TABLE message CHANGE created_on created_on DATETIME NOT NULL, CHANGE updated_on updated_on DATETIME NOT NULL;
ALTER TABLE module CHANGE start_date start_date DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL, CHANGE end_date end_date DATETIME NOT NULL;
ALTER TABLE scheduled_commands CHANGE last_execution last_execution DATETIME NOT NULL;
我可以整天坐在这里运行迁移并检查它,它会保持不变。这些实体也没有什么特别之处:
/**
* @var \DateTime
*
* @ORM\Column(name="start_date", type="datetime")
*/
private $startDate;
/**
* @var \DateTime
*
* @ORM\Column(name="end_date", type="datetime")
*/
private $endDate;
有人对此有任何想法吗?我现在完全被难住了:(。
mysql 设置也是当前的 5.6.25
迁移后的列结构看起来像这样
`start_date` | DATETIME | NOT NULL,
`end_date` | DATETIME | NOT NULL