我在Symfony2中有Entity
:
<?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
答案 0 :(得分:13)
如果您不想删除/创建表,可以使用@columnDefinition属性并自己定义列定义。
/**
* @var integer
*
* @ORM\Column(type="integer", columnDefinition="INT NOT NULL AFTER `user_id`")
*/
private $superbanana;
答案 1 :(得分:0)
我不认为这是可能的,因为使用Doctrine意味着您不再关心如何管理表(显然之前有人tried it)。
既然你从不直接使用MySQL,我认为没有实用工具来指定Doctrine的列顺序。
但您可以随时删除您的表格,以便Doctrine完全重建表格,尊重您的订单。