Ben bir örnek için bir sütun için varsayılan bir ayar oluşturan Rails bir geçiş var sorun var:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Diyelim ki, daha sonraki bir taşıma işleminde bu varsayılan ayarları bırakmak istiyorum, bunu ray taşımalarını kullanarak nasıl yapabilirim?
Geçerli geçici çözüm, raylar geçişinde aşağıdaki gibi özel bir sql komutunun yürütülmesidir:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
Ama bu yaklaşımı sevmiyorum, çünkü artık temel veritabanının bu komutu nasıl yorumladığına bağlıyım. Veritabanında bir değişiklik olması durumunda, bu sorgu artık çalışmayabilir ve geçiş bozulur. Peki, raylardaki bir sütun için varsayılan ayarın geri alınmasını ifade etmenin bir yolu var mı?
CHARACTER VARYING
sütunlar için varsayılanı düşürmez, sadece olarak ayarlayınNULL::character varying
.