相关疑难解决方法(0)

使用Rails,如何将主键设置为不是整数类型的列?

我正在使用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
Run Code Online (Sandbox Code Playgroud)

这给了我什么似乎完全忽略了这条线t.string :emp_id并继续前进并使它成为一个整数列.有没有其他方法让rails为我生成PRIMARY_KEY约束(我正在使用PostgreSQL),而不必在execute调用中编写SQL ?

注意:我知道最好不要使用字符串列作为主键,所以请不要回答只是说添加一个整数主键.无论如何我可以添加一个,但这个问题仍然有效.

database migration ruby-on-rails primary-key

85
推荐指数
7
解决办法
8万
查看次数

如何在rails中将数据库列从integer迁移到bigint?

基于我发现的东西,我现在正在使用它,但它不起作用......

def change
 change_column :users, :twitter_id, :integer, :limit => 8
end
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails-4

10
推荐指数
2
解决办法
8375
查看次数