如何指定要在哪个字段之后添加一个新列?(我不希望在时间戳之后将该字段添加到底部)
add_column :users, :is_active, :boolean
发布于 2011-11-30 18:52:04
以下是如何:
add_column :users, :is_active, :boolean, :after => :some_column
其中,:some_column是要在其中添加:is_active的列的名称。
发布于 2011-11-30 18:58:39
一般来说,你不能也不应该在意。关系数据库中的表实际上没有任何特定的顺序;这就是为什么在插入时应该始终指定列,并且永远不要说像select * ...
这样的话(是的,ActiveRecord会这样做,但这并不意味着这是一个好主意,仅仅因为AR跳下悬崖并不意味着应该这样做,等等)。
如果您坚持要尝试完成数据库的工作,那么可移植的方法是:
将表复制或重命名为另一个表。(3).
H 110
将数据从(1)中的表复制到" new“表中。
如果使用的是MySQL或MySQL2数据库适配器,则可以使用:after => :some_column
option到add_column
。如果您使用的是SQLite或PostgreSQL,那么请参阅上面的便携方式。如果您使用的是其他任何东西,那么您必须阅读适配器的文档或源代码来查看支持什么。
但你应该问问自己,为什么你认为自己想要这样做,然后再继续。
https://stackoverflow.com/questions/8335716
复制相似问题