doctrine: schema: update non rispetta l'ordine delle colonne

Ho questa Entity in Symfony2:

 <?php namespace Project\UserBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Users * * @ORM\Table(name="users") * @ORM\Entity */ class Users { /** * @var integer * * @ORM\Column(name="user_id", type="integer", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $userId; /** * @var integer * * @ORM\Column(name="test", type="integer", nullable=false) */ private $test; } 

Aggiungo la seguente row tra {{userId}} e {{test}}:

 /** * @var integer * * @ORM\Column(name="superbanana", type="integer", nullable=false) */ private $superbanana; 

Quindi eseguo in console:

 php app/console doctrine:schema:update --dump-sql 

Mi dà la risposta:

 ALTER TABLE users ADD superbanana INT NOT NULL 

** Come posso fare per avere invece? **

 ALTER TABLE users ADD superbanana INT NOT NULL AFTER user_id 

Se non vuoi eliminare / creare la tabella, puoi usare l' attributo @columnDefinition e definire tu stesso la definizione della colonna.

 /** * @var integer * * @ORM\Column(type="integer", columnDefinition="INT NOT NULL AFTER `user_id`") */ private $superbanana; 

Non penso sia ansible perché usare Doctrine significa che non ti interessa più come viene gestito il Table (a quanto pare qualcuno l'ha provato prima).

E dal momento che non usi mai direttamente MySQL, penso che non ci sia alcuna utilità per specificare gli ordini di colonne per Doctrine.

Ma puoi sempre cancellare il tuo tavolo così Doctrine ricostruirà completamente la tabella, rispettando il tuo ordine.