Symfony Doctrine架构更新无法检测到带有可空日期时间的更改



当我第一次运行这个命令时,一切似乎都很正常:

$ php bin/console doctrine:schema:update --dump-sql
ALTER TABLE posts CHANGE createdAt createdAt DATETIME NOT NULL, CHANGE updatedAt updatedAt DATETIME DEFAULT NULL;
$ php bin/console doctrine:schema:update --force
Updating database schema...
Database schema updated successfully! "1" query was executed

但是当我重新运行dump-sql时,就像没有发生更新:

$ php bin/console doctrine:schema:update --dump-sql
ALTER TABLE posts CHANGE createdAt createdAt DATETIME NOT NULL, CHANGE updatedAt updatedAt DATETIME DEFAULT NULL;

我可以没完没了地重复。

这是我的Post实体与createdAtupdatedAt属性注释:

<?php
namespace WebBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * Post
 *
 * @ORMTable(name="posts")
 * @ORMEntity(repositoryClass="WebBundleRepositoryPostRepository")
 */
class Post
{
    ...
    /**
     * @var DateTime
     *
     * @ORMColumn(name="createdAt", type="datetimetz")
     */
    private $createdAt;
    /**
     * @var DateTime
     *
     * @ORMColumn(name="updatedAt", type="datetimetz", nullable=true)
     */
    private $updatedAt;

当我检查我的MariaDB表时,模式完全是我声明的:

# Name      Type      Collation Attributes  Null  Default Extra
1 id        char(36)                        No    None
...
7 createdAt datetime                        No    None
8 updatedAt datetime                        Yes   NULL

知道怎么回事吗?

我也有同样的问题!

我将字段类型"datetimez"重命名为"datetime",现在可以了

    /**
 * @var DateTime
 *
 * @ORMColumn(name="created", type="datetime")
 */
private $created;

最新更新