我了解到add_column
有一个:after
选项来设置插入列的位置。太糟糕了,我了解了它:添加了一堆。
如何编写迁移以简单地重新排序列?
答案 0 :(得分:57)
您可以致电change_column
,但必须重复列类型(只需从其他迁移中复制并粘贴):
def up
change_column :your_table, :some_column, :integer, after: :other_column
end
或者如果您必须在一个表中重新排序多个列:
def up
change_table :your_table do |t|
t.change :some_column, :integer, after: :other_column
# ...
end
end
change_column
调用了ALTER TABLE
。来自MySQL documentation:
您还可以在
FIRST
或AFTER
操作中使用CHANGE
和MODIFY
重新排序表中的列。
答案 1 :(得分:-2)
PS:我不以任何方式与他们有任何关系。