আমার সমস্যা আছে, আমার কাছে কারাগুলিতে একটি মাইগ্রেশন আছে যা এই কলের জন্য একটি কলামের জন্য একটি ডিফল্ট সেটিংস সেট আপ করে:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
মনে করুন, আমি পরবর্তী মাইগ্রেশনে সেই ডিফল্ট সেটিংসগুলি ফেলে দিতে চাই, রেলের স্থানান্তরগুলি ব্যবহার করে আমি কীভাবে এটি করব?
আমার বর্তমান কাজটি হ'ল রেল মাইগ্রেশনে একটি কাস্টম এসকিএল কমান্ড কার্যকর করা, এটির মতো:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
তবে আমি এই পদ্ধতির পছন্দ করি না, কারণ অন্তর্নিহিত ডাটাবেস কীভাবে এই আদেশটি ব্যাখ্যা করে তার উপরে আমি এখন নির্ভরশীল। ডাটাবেস পরিবর্তনের ক্ষেত্রে এই কোয়েরিটি সম্ভবত আর কাজ করবে না এবং মাইগ্রেশনটি ভেঙে যাবে। সুতরাং, রেলের কোনও কলামের জন্য ডিফল্ট সেটিংসের পূর্বাবস্থা প্রকাশ করার কোনও উপায় আছে কি?
CHARACTER VARYING
এটি কলামগুলির জন্য ডিফল্টটি আসলে ফেলে দেবে না , কেবল এটি সেট করেNULL::character varying
।