当通过迁移向表中添加一些字段时,是否可以告诉 rails 将 id 列保留在模式的顶部,并将时间戳记在底部?
我想要的是在控制台上使用 rails 时始终将这些字段放在相同的位置,我知道可以在 schema.rb 中对它们重新排序并重新加载它,但我也在寻找一种更适合生产环境的更清洁的方法。
谢谢你
当通过迁移向表中添加一些字段时,是否可以告诉 rails 将 id 列保留在模式的顶部,并将时间戳记在底部?
我想要的是在控制台上使用 rails 时始终将这些字段放在相同的位置,我知道可以在 schema.rb 中对它们重新排序并重新加载它,但我也在寻找一种更适合生产环境的更清洁的方法。
谢谢你
您可以从 Rails 2.3.6+ 中获得类似的东西(可能目前仅在 Mysql 中):
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
资料来源:
-在 Rails 迁移 (MySQL) 中,您能否指定新列的位置?
- https://rails.lighthouseapp.com/projects/8994/tickets/3286-patch-add-support-for-mysql-column-positioning-to-migrations
您可能对fix-db-schema-conflictsdb/schema.rb
gem 感兴趣,它会在生成文件时自动按字母顺序对列进行排序。
时间戳不一定是列表中的最后一个,但架构不会依赖于添加列的顺序(通过迁移)。