Php 条令:模式:更新不';不尊重列顺序

Php 条令:模式:更新不';不尊重列顺序,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我在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", typ

我在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;
}
然后我在控制台中执行:

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

我认为这是不可能的,因为使用条令意味着您不再关心如何管理表(显然是以前的某个人)

而且,由于您从未直接使用MySQL,因此我认为没有实用程序可以为其指定列顺序


但您始终可以删除表,这样Dority将根据您的顺序完全重建表。

如果您不想删除/创建表,您可以使用属性并自己定义列定义

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

条令不处理字段顺序(即使对于相关字段,它们也将始终附加);如果这对您很重要,并且在更新模式之前表中没有任何数据,请运行
php应用程序/控制台原则:schema:drop
然后运行
php应用程序/控制台原则:schema:create
我不认为create Supports AFTERyes@Natdrip:create不支持AFTER,而是在AFTER之后更改支持
/**
 * @var integer
 *
 * @ORM\Column(type="integer", columnDefinition="INT NOT NULL AFTER `user_id`")
 */
private $superbanana;