Php 条令:模式:更新不';不尊重列顺序
我在Symfony2中有这个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
实体
:
<?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;