如何指定我想添加新列的字段?(我不希望在时间戳之后添加字段在底部)
add_column :users, :is_active, :boolean
答案 0 :(得分:1)
以下是:
add_column :users, :is_active, :boolean, :after => :some_column
其中:some_column是要添加的列的名称:is_active after。
答案 1 :(得分:1)
一般来说,你不能也不应该在乎。关系数据库中的表实际上没有任何特定的顺序;这就是为什么你要在INSERT时总是指定列而不要说select * ...
之类的东西(是的,ActiveRecord就是这样做但是那并不意味着这是一个好主意,只是因为AR从悬崖上跳下来没有这意味着你应该等等。)
如果你坚持尝试为它做数据库的工作,那么可移植的方式是:
如果您使用的是MySQL或MySQL2数据库适配器,则可以使用:after => :some_column
option至add_column
。如果您使用的是SQLite或PostgreSQL,请参阅上面的可移植方式。如果您正在使用其他任何内容,那么您必须阅读adapater的文档或源代码以查看支持的内容。
但在继续之前,你应该问问自己为什么你认为你想这样做。