当通过迁移将某些字段添加到表中时,可以告诉导轨将id列保留在架构的顶部,并在时间戳的底部保留时间戳?架构字段在导轨迁移上排序
我想要的是在控制台上使用rails时总是将这些字段放在同一位置,我知道可以在schema.rb中重新排序它们并重新加载它,但我正在寻找一种更适合生产环境。
谢谢
当通过迁移将某些字段添加到表中时,可以告诉导轨将id列保留在架构的顶部,并在时间戳的底部保留时间戳?架构字段在导轨迁移上排序
我想要的是在控制台上使用rails时总是将这些字段放在同一位置,我知道可以在schema.rb中重新排序它们并重新加载它,但我正在寻找一种更适合生产环境。
谢谢
你可以是这样的(也许目前在MySQL只)从Rails的2.3.6+:
add_column :table_name, :column_name, :column_type, after: :other_column_name
或
change_table :the_table do |t|
t.column_type :column_name, after: :other_column_name
end
来源:
- In a Rails Migration (MySQL), can you specify what position a new column should be?
- https://rails.lighthouseapp.com/projects/8994/tickets/3286-patch-add-support-for-mysql-column-positioning-to-migrations
您可能会感兴趣fix-db-schema-conflicts gem,它会自动按字母顺序排列列,同时生成db/schema.rb
文件。
时间戳不一定是列表中的最后一个,但架构不会依赖添加列的顺序(通过迁移)。
列的顺序应该没有关系。如果是这样,你做错了。 – 2012-04-15 20:34:55
@SergioTulentsev我会引用martin-dempesy:通过任何数据库UI(我们知道它不会影响速度或性能)查看数据时,以有组织的方式查看数据非常有用。 – 2012-06-01 13:48:12
某些数据库UI允许轻松地重新排序列。这是拖放在Navicat上。 – Engwan 2013-07-11 09:36:15