আমি একটি ডেটাবেস স্কিমা পরিচালনা করতে রেল মাইগ্রেশন ব্যবহার করছি এবং আমি একটি সাধারণ টেবিল তৈরি করছি যেখানে আমি প্রাথমিক কী হিসাবে (বিশেষত স্ট্রিং) নন-ইন্টিজার মানটি ব্যবহার করতে চাই। আমার সমস্যা থেকে দূরে সরে যেতে, আসুন আমরা বলতে পারি যে একটি টেবিল রয়েছে employeesযেখানে কর্মীরা একটি বর্ণানুক্রমিক স্ট্রিং দ্বারা চিহ্নিত করা হয়, যেমন "134SNW"।
আমি এইভাবে মাইগ্রেশনে টেবিল তৈরি করার চেষ্টা করেছি:
create_table :employees, {:primary_key => :emp_id} do |t|
t.string :emp_id
t.string :first_name
t.string :last_name
end
এটি আমাকে যা দেয় তা হ'ল এটি সম্পূর্ণরূপে লাইনটিকে উপেক্ষা করে t.string :emp_idএগিয়ে যায় এবং এটি একটি পূর্ণসংখ্যা কলাম তৈরি করে। কোনও executeকলটিতে এসকিউএল না লিখে, রেলগুলি আমার জন্য PRIMARY_KEY সীমাবদ্ধতা (আমি PostgreSQL ব্যবহার করছি) তৈরি করার অন্য কোনও উপায় আছে কি ?
দ্রষ্টব্য : আমি জানি প্রাথমিক কী হিসাবে স্ট্রিং কলামগুলি ব্যবহার করা ভাল নয়, সুতরাং দয়া করে কোনও উত্তরই কেবল পূর্ণসংখ্যার প্রাথমিক কী যুক্ত করার কথা বলছে না। আমি যাইহোক একটি যোগ করতে পারেন, তবে এই প্রশ্নটি এখনও বৈধ।