Membuat Migration yang Idempoten
13 Oktober 2020
Saat menulis migration yang destruktif, gunakan if_exists: true ketika Anda menghapus tabel, dan periksa keberadaan tabel dengan ActiveRecord::Base.connection.table_exists? ketika Anda ingin menambah atau menghapus kolom
Kasus 1:
def up
drop_table :kittens, if_exists: true
end
Kasus 2:
def up
return unless ActiveRecord::Base.connection.table_exists?(:kittens)
add_column :kittens, :kind, :integer
end