冪等なマイグレーションを作成する
2020年10月13日
破壊的なマイグレーションを書くときは、テーブルを削除する場合には if_exists: true を使い、カラムを追加または削除する場合には ActiveRecord::Base.connection.table_exists? でテーブルの存在を確認してください
ケース 1:
def up
drop_table :kittens, if_exists: true
end
ケース 2:
def up
return unless ActiveRecord::Base.connection.table_exists?(:kittens)
add_column :kittens, :kind, :integer
end