doctrine: schema: обновление не учитывает порядок столбцов

У меня есть этот Entity в 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; } 

Я добавляю следующую строку между {{userId}} и {{test}}:

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

Затем я запускаю консоль:

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

Это дает мне ответ:

 ALTER TABLE users ADD superbanana INT NOT NULL 

** Как я могу это сделать? **

 ALTER TABLE users ADD superbanana INT NOT NULL AFTER user_id 

Если вы не хотите отбрасывать / создавать таблицу, вы можете использовать атрибут @columnDefinition и сами определять определение столбца.

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

Я не думаю, что это возможно, потому что использование Doctrine означает, что вам все равно, как управление таблицей больше (по-видимому, кто-то пробовал ее раньше).

И поскольку вы никогда не используете MySQL напрямую, я думаю, что нет никакой утилиты для указания порядков столбцов для Doctrine.

Но вы всегда можете удалить таблицу, чтобы Doctrine полностью перестроил таблицу, соблюдая ваш заказ.