1

当通过迁移向表中添加一些字段时,是否可以告诉 rails 将 id 列保留在模式的顶部,并将时间戳记在底部?

我想要的是在控制台上使用 rails 时始终将这些字段放在相同的位置,我知道可以在 schema.rb 中对它们重新排序并重新加载它,但我也在寻找一种更适合生产环境的更清洁的方法。

谢谢你

4

2 回答 2

5

您可以从 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

于 2012-06-01T13:42:35.467 回答
2

您可能对fix-db-schema-conflictsdb/schema.rb gem 感兴趣,它会在生成文件时自动按字母顺序对列进行排序。

时间戳不一定是列表中的最后一个,但架构不会依赖于添加列的顺序(通过迁移)。

于 2016-06-09T16:54:35.647 回答