1

移行によってテーブルにいくつかのフィールドを追加するときに、スキーマの上部に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 Migration (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-conflicts gemに興味があるかもしれませんdb/schema.rb

タイムスタンプは必ずしもリストの最後にあるとは限りませんが、スキーマは (移行によって) 列が追加された順序に依存しません。

于 2016-06-09T16:54:35.647 に答える