如何在Heroku Postgres中从字符串主键中隔离id

时间:2012-07-15 18:17:17

标签: ruby-on-rails activerecord heroku

我有一个模型,我使用字符串作为主键:

class Employee < ActiveRecord::Base
   self.primary_key = "employment_id"
end 

此表还包含Rails默认的“id”字段,具有唯一性约束。

当我在本地添加新员工时,一切正常,Rails会自动生成一个新的唯一ID。

然而,当我在Heroku Postgres上运行它时,似乎将'id'和'employment_id'视为同一个字段。我尝试通过手动设置唯一ID来解决这个问题,但仍然会出现这种情况:

Employee.new do |s|

  max_id = Employee.maximum(:id)  
  puts max_id.to_s             # => 1803 

  s.employment_id = "fred_01"      
  s.id = max_id + 1 

  puts employment_id.to_s      # => 1804

end

我在本地运行postgres 9.1.3(Heroku在9.1.4上运行)。我在Rails 3.2.3上。

知道可能会发生什么吗?我有一个想法就是摆脱'id'专栏,现在已经多余,但我担心会有更多的痛苦。你会提出什么建议?

0 个答案:

没有答案