2016-07-04 14 views
3

Wenn ich diesen Befehl ausführen zunächst alles gut zu funktionieren scheint:Symfony Lehre Schema Update erkennt keine Änderungen mit NULL festlegbare Datetime

$ 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 

Aber wenn ich ein dump-sql erneut ausführen, es ist wie das Update hasn‘ t passiert:

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

ich, dass endlos wiederholen.

Hier ist meine Post Einheit mit den createdAt und updatedAt Eigenschaften Anmerkungen:

<?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; 

Und wenn ich meine MariaDB Tabelle überprüfen, genau das Schema ist, was ich erklärt:

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

Jede Idee, über Was ist los mit dir ?

+0

mit genau das gleiche Problem für Typ 'datetime', auch der Spaltenname gleich ist. Haben Sie eine Lösung gefunden? – xtra

Antwort

2

Ich habe genau das gleiche Problem!

ich benennen Sie den Feldtyp „Datetime z“ auf „Datetime“ und jetzt ist es ok

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