রেলস 4.x
আপনি যখন ইতিমধ্যেই আছে users
এবং uploads
টেবিল ও করতে ইচ্ছুক নতুন সম্পর্কের যোগ তাদের মধ্যে।
আপনাকে যা করতে হবে তা হ'ল: নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি মাইগ্রেশন তৈরি করুন:
rails g migration AddUserToUploads user:references
যা মাইগ্রেশন ফাইল হিসাবে তৈরি করবে:
class AddUserToUploads < ActiveRecord::Migration
def change
add_reference :uploads, :user, index: true
end
end
তারপরে, ব্যবহার করে মাইগ্রেশন চালান rake db:migrate
। এই স্থানান্তরণের নামে একজন নতুন কলাম যোগ করার যত্ন নিতে হবে user_id
থেকে uploads
সারণী (উল্লেখ id
কলাম users
টেবিল), প্লাস এটি নতুন কলাম উপর একটি সূচক যোগ করা হবে।
আপডেট করুন [4..২ রেলের জন্য]
রেফারেন্সিয়াল অখণ্ডতা বজায় রাখতে কারাগুলিকে বিশ্বাস করা যায় না; সম্পর্কিত ডেটাবেসগুলি এখানে আমাদের উদ্ধারে আসে। এর অর্থ হ'ল আমরা নিজেরাই ডাটাবেস স্তরে বিদেশী কী বাধা যুক্ত করতে পারি এবং নিশ্চিত করতে পারি যে ডাটাবেস এই সেটটি রেফারেন্সিয়াল অখণ্ডতা লঙ্ঘন করে এমন কোনও ক্রিয়াকলাপ প্রত্যাখ্যান করবে। যেমন @ ইনফোয়েট মন্তব্য করেছেন, বিদেশী কীগুলির জন্য দেশীয় সমর্থন (রেফারেন্সিয়াল অখণ্ডতা) সহ 4.2 টি জাহাজের পোলগুলি । এটি প্রয়োজন হয় না তবে আপনি উপরে বর্ণিত রেফারেন্সটিতে আপনি বিদেশী কী (এটি খুব দরকারী হিসাবে) যুক্ত করতে চাইতে পারেন।
বিদ্যমান রেফারেন্সে বিদেশী কী যুক্ত করতে, বিদেশী কী যুক্ত করতে একটি নতুন স্থানান্তর তৈরি করুন:
class AddForeignKeyToUploads < ActiveRecord::Migration
def change
add_foreign_key :uploads, :users
end
end
একটি বিদেশী কী ( সম্পূর্ণ 4.2 রেল) সহ সম্পূর্ণ ব্র্যান্ডের নতুন রেফারেন্স তৈরি করতে , নিম্নলিখিত কমান্ডটি ব্যবহার করে মাইগ্রেশন তৈরি করুন:
rails g migration AddUserToUploads user:references
যা মাইগ্রেশন ফাইল হিসাবে তৈরি করবে:
class AddUserToUploads < ActiveRecord::Migration
def change
add_reference :uploads, :user, index: true
add_foreign_key :uploads, :users
end
end
এটি টেবিলের user_id
কলামে একটি নতুন বিদেশী কী যুক্ত করবে uploads
। কীটি সারণীতে id
কলামটি উল্লেখ করে users
।
দ্রষ্টব্য: এটি একটি রেফারেন্স যুক্ত করার সাথে যুক্ত যাতে আপনার এখনও প্রথমে একটি রেফারেন্স তৈরি করতে হবে তারপরে বিদেশী কী ( আপনি একই মাইগ্রেশন বা একটি পৃথক স্থানান্তর ফাইলে বিদেশী কী তৈরি করতে বেছে নিতে পারেন )। সক্রিয় রেকর্ড শুধুমাত্র একক কলাম বিদেশী কী সমর্থন ও বর্তমানে কেবল mysql
, mysql2
এবং PostgreSQL
অ্যাডাপ্টার সমর্থিত। অন্যান্য অ্যাডাপ্টারের মতো এটি ব্যবহার করে sqlite3
দেখুন না R ইত্যাদি আপনার রেফারেন্সের জন্য রেল গাইড: বিদেশী কীগুলি দেখুন ।