2011-12-01 34 views

回答

1

方法如下:

add_column :users, :is_active, :boolean, :after => :some_column 

其中:some_column是你想要的列名添加:之后的is_active。

1

一般来说,你不能和你不应该在意。关系数据库中的表格并没有特别的顺序;这就是为什么你应该总是指定列时,你插入,并从来没有说过像select * ...(是的,ActiveRecord这样做,但是,但这并不意味着这是一个好主意,只是因为AR跳下悬崖并不意味着你应该等)。

如果你坚持尝试为它做数据库的工作则袖珍的方法是:

  1. 复制或表重命名为另一个表。
  2. 删除原文(除非您在(1)中重命名)。
  3. 按照所需顺序创建包含列的新表。 (3)希望数据库关注您的订单。
  4. 将数据从(1)中的表复制到(3)中的“新”表中。
  5. ...
  6. 利润。

如果您使用MySQL或MySQL2数据库适配器,则可以使用:after => :some_column optionadd_column。如果你使用的是SQLite或PostgreSQL,那么看看上面的便携方式。如果您使用其他任何东西,那么您必须阅读adapater的文档或源代码才能看到支持的内容。

但是,你应该问自己,为什么你认为你想在继续之前做到这一点。

+0

:在sqlite上工作后也是 – Amala

+0

是的,我认为我很困惑,使用太多的东西。我可以删除我的评论以避免让人困惑。 – Amala

+0

@Amala:不用担心,我们会把它清理干净,然后转移到更有趣的东西:) –

相关问题