编写幂等的 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