首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原则:模式:更新不尊重列顺序

问原则:模式:更新不尊重列顺序
EN

Stack Overflow用户
提问于 2014-06-10 18:41:26
回答 2查看 5.6K关注 0票数 10

我有一个Entity在Symfony2:

代码语言:javascript
复制
<?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}之间添加以下一行:

代码语言:javascript
复制
/**
 * @var integer
 *
 * @ORM\Column(name="superbanana", type="integer", nullable=false)
 */
private $superbanana;

然后在控制台中执行:

代码语言:javascript
复制
php app/console doctrine:schema:update --dump-sql

它给了我一个答复:

代码语言:javascript
复制
ALTER TABLE users ADD superbanana INT NOT NULL

**我该怎么做呢?**

代码语言:javascript
复制
ALTER TABLE users ADD superbanana INT NOT NULL AFTER user_id
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-11 05:54:35

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

代码语言:javascript
复制
/**
 * @var integer
 *
 * @ORM\Column(type="integer", columnDefinition="INT NOT NULL AFTER `user_id`")
 */
private $superbanana;
票数 15
EN

Stack Overflow用户

发布于 2014-06-10 19:05:09

我认为这是不可能的,因为使用Doctrine意味着您不再关心表是如何管理的(显然以前有人是tried it的)。

而且,由于您从不直接使用MySQL,所以我认为没有为Doctrine指定列订单的实用程序。

但是您可以随时删除您的表,这样Doctrine将完全重新构建该表,同时尊重您的顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24148568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档