Symfony Doctrine架构更新未检测到可空日期时间的更改

Edo*_*chs 5 php mysql mariadb symfony doctrine-orm

当我首先运行此命令时,一切似乎都正常:

$ 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
Run Code Online (Sandbox Code Playgroud)

但是当我重新运行时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;
Run Code Online (Sandbox Code Playgroud)

我可以无休止地重复这一点.

这是我的Post实体,带有createdAtupdatedAt属性注释:

<?php

namespace WebBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Post
 *
 * @ORM\Table(name="posts")
 * @ORM\Entity(repositoryClass="WebBundle\Repository\PostRepository")
 */
class Post
{
    ...

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="createdAt", type="datetimetz")
     */
    private $createdAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="updatedAt", type="datetimetz", nullable=true)
     */
    private $updatedAt;
Run Code Online (Sandbox Code Playgroud)

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

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

什么是错的?

mag*_*ibi 2

我也有完全一样的问题 !

我将字段类型“datetime z ”重命名为“datetime”,现在可以了

    /**
 * @var \DateTime
 *
 * @ORM\Column(name="created", type="datetime")
 */
private $created;
Run Code Online (Sandbox Code Playgroud)