我使用 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
,继续前进,使它成为一个整数列。有没有其他方法可以让 Rail 为我生成 PRIMARY _ KEY 约束(我正在使用 PostgreSQL) ,而不必在 execute
调用中编写 SQL?
注意 : 我知道最好不要使用字符串列作为主键,所以请不要回答只是说要添加一个整数主键。我也许会加一个,但这个问题仍然有效。