ฉันใช้การโอนย้าย Rails เพื่อจัดการสคีมาฐานข้อมูลและฉันกำลังสร้างตารางง่ายๆที่ฉันต้องการใช้ค่าที่ไม่ใช่จำนวนเต็มเป็นคีย์หลัก (โดยเฉพาะสตริง) ห่างนามธรรมจากปัญหาของฉันสมมติว่ามีตารางที่พนักงานมีการระบุโดยสตริงและตัวเลขเช่น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
และดำเนินการต่อและทำให้เป็นคอลัมน์จำนวนเต็ม มีวิธีอื่นอีกไหมที่จะทำให้รางสร้างข้อ จำกัด PRIMARY_KEY (ฉันใช้ PostgreSQL) ให้ฉันโดยไม่ต้องเขียน SQL ในการexecute
โทร?
หมายเหตุ : ฉันรู้ว่าไม่ควรใช้คอลัมน์สตริงเป็นคีย์หลักดังนั้นโปรดอย่าตอบเพียงแค่บอกว่าให้เพิ่มคีย์หลักจำนวนเต็ม ฉันอาจเพิ่มได้ แต่คำถามนี้ยังใช้ได้