当我第一次运行这个命令时,一切似乎都很正常:
$ 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
实体与createdAt
和updatedAt
属性注释:
<?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;