আমার রেলস (৩.২) অ্যাপে আমার ডাটাবেসে প্রচুর টেবিল রয়েছে তবে আমি কয়েকটি নਾਲ সীমাবদ্ধতা যুক্ত করতে ভুলে গেছি। আমি প্রায় googled আছে কিন্তু আমি একটি মাইগ্রেশন লিখতে যা পাই না যা বিদ্যমান কলামে শূন্য হয় না।
টিয়া।
আমার রেলস (৩.২) অ্যাপে আমার ডাটাবেসে প্রচুর টেবিল রয়েছে তবে আমি কয়েকটি নਾਲ সীমাবদ্ধতা যুক্ত করতে ভুলে গেছি। আমি প্রায় googled আছে কিন্তু আমি একটি মাইগ্রেশন লিখতে যা পাই না যা বিদ্যমান কলামে শূন্য হয় না।
টিয়া।
উত্তর:
রেলস 4+ এর জন্য, নেটের উত্তর ( চেঞ্জ_কলোম_নুল ব্যবহার করা ) আরও ভাল।
প্রি-রেলস 4, চেঞ্জ_কলোম চেষ্টা করুন ।
IrreversibleMigration
যা আপনার পছন্দসই নাও হতে পারে।
আপনি পরিবর্তন_ কলাম_নুল ব্যবহার করতে পারেন :
change_column_null :table_name, :column_name, false
1) প্রথম: ডিফল্ট মান সহ কলাম যুক্ত করুন
2) তারপর: ডিফল্ট মান সরান
add_column :orders, :items, :integer, null: false, default: 0
change_column :orders, :items, :integer, default: nil
আপনি যদি এটি কোনও নতুন তৈরি মাইগ্রেশন স্ক্রিপ্ট / স্কিমাতে ব্যবহার করেন তবে আমরা কীভাবে এটি সংজ্ঞা দিতে পারি
class CreateUsers < ActiveRecord::Migration[5.2]
def change
create_table :users do |t|
t.string :name, null: false # Notice here, NOT NULL definition
t.string :email, null: false
t.string :password, null: false
t.integer :created_by
t.integer :updated_by
t.datetime :created_at
t.datetime :updated_at, default: -> { 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP' }
end
end
end
:limit
সীমাবদ্ধতা) থাকে, আপনাকে ব্যবহার করার সময় সেই বৈশিষ্ট্যগুলি পুনরাবৃত্তিchange_column
করতে হবে, বা সেগুলি হারিয়ে যাবে। এই কারণে, আমি ব্যবহার করতে পছন্দ করিchange_column_null