Symfony 2.7 - 使用DateTimes的Doctrine迁移陷入永久循环

时间:2015-10-16 15:08:46

标签: symfony doctrine-orm doctrine-migrations

我已经搜索了互联网,书籍和论坛寻找答案,我希望有人可以提供帮助。

我有一个标准的Symfony 2项目设置,在学说中使用实体注释。我遇到的问题是我的任何包含日期时间类型的实体都不断想要迁移。所以在初始迁移到db后我可以重新运行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

1 个答案:

答案 0 :(得分:0)

您需要确保在types.datetime中正确设置了doctrine.yaml