撰寫具冪等性的 migration
October 13, 2020
當你要撰寫破壞性的 migration 時,如果要移除資料表,請使用 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