web-dev-qa-db-ja.com

Rails 4移行:列を並べ替える方法

私は、それをもう学びました add_column 持っています :afterオプションは、列が挿入される場所を設定します。残念ながら私はそれについて学んだ。

列を並べ替えるだけの移行を作成するにはどうすればよいですか?

39
emersonthis

change_columnを呼び出すことはできますが、列タイプを繰り返す必要があります(他のマイグレーションからコピーして貼り付けるだけです):

def up
  change_column :your_table, :some_column, :integer, after: :other_column
end

または、1つのテーブルで複数の列を並べ替える必要がある場合:

def up
  change_table :your_table do |t|
    t.change :some_column, :integer, after: :other_column
    # ...
  end
end

change_columnは内部でALTER TABLEを呼び出します。 MySQLから ドキュメント

FIRSTまたはAFTER操作でCHANGEおよびMODIFYを使用して、テーブル内の列を並べ替えることもできます。

59
Stefan