やったこと
Rails5 の migration を利用してカラムを追加する時、追加する位置を制御する方法について調べました。
確認環境
$ ruby --version
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
調査
$ rails g model Task2 name:string content:text
$ rails db:migrate
ここで、task2 テーブルに status カラムを content カラムの後に追加します。
$ rails g migration AddStatusAtToTask2s status:int
これが生成されたファイルです。
db/migrate/20190508233635_add_status_at_to_task2s.rb
class AddStatusAtToTask2s < ActiveRecord::Migration[5.2]
def change
add_column :task2s, :status, :int
end
end
※ 日時部分は実行時間によって変わります。
下記のように変更します。 デフォルトのままだと、カラムが一番後に追加されます。
class AddStatusAtToTask2s < ActiveRecord::Migration[5.2]
def change
add_column :task2s, :status, :int, after: :content
end
end
$ rails db:migrate
無事に意図した位置にカラムを追加することができました。