Saya punya masalah, bahwa saya memiliki migrasi di Rails yang menetapkan pengaturan default untuk kolom, seperti contoh ini:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Misalkan, saya ingin menghapus pengaturan default itu dalam migrasi nanti, bagaimana saya melakukannya dengan menggunakan migrasi rails?
Solusi saya saat ini adalah pelaksanaan perintah sql khusus dalam migrasi rails, seperti ini:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
Tapi saya tidak suka pendekatan ini, karena saya sekarang tergantung pada bagaimana database yang mendasari menafsirkan perintah ini. Jika terjadi perubahan pada basis data, kueri ini mungkin tidak berfungsi lagi dan migrasi akan rusak. Jadi, apakah ada cara untuk mengekspresikan pembatalan pengaturan default untuk kolom di rails?
CHARACTER VARYING
kolom, cukup aturNULL::character varying
.