Ruby on rails RubyonRails Postgres复制密钥
我有几个代码表工作得很好。现在,当我尝试添加记录时,我得到:Ruby on rails RubyonRails Postgres复制密钥,ruby-on-rails,Ruby On Rails,我有几个代码表工作得很好。现在,当我尝试添加记录时,我得到: PG::Error: ERROR: duplicate key value violates unique constraint "classcodes_pkey" DETAIL: Key (id)=(3) already exists. 型号代码: class Classcode < ActiveRecord::Base has_many :worequests default_scope :order => '
PG::Error: ERROR: duplicate key value violates unique constraint "classcodes_pkey"
DETAIL: Key (id)=(3) already exists.
型号代码:
class Classcode < ActiveRecord::Base
has_many :worequests
default_scope :order => 'classcode ASC'
def class_desc
"#{self.classcode} - #{self.classdesc}"
end
scope :archived, where(:archive => true)
scope :active, where(:archive => false)
end
类代码具有key=id[PK]序列,并且已经包含记录1到9
有什么想法吗
谢谢
PS-我被建议运行rake db:reset-现在问题消失了-但是,现在我需要重新加载数据。我一直在尝试输入新记录,现在它的键=16,即使表中只有9条记录,也会出现相同的错误。是否可能数据库中包含序列值的表不是最新的?PostgreSQL将其作为序列存储在其元数据中。更新:回答,序列正在工作。我怎么知道?我运行了pgAdmin/maintenance/vacuum并在桌上进行了分析。顺便说一句,不止一个表给了我这个错误。另外,在Heroku上运行的同一个应用程序也很好。你能编辑你的问题来发布你的模型代码或schema.rb的相关部分吗。另外,在9行中使用了哪些键值id-从psql>提示符运行SELECTID from classcodes;我还重新启动了iMac,看看重新启动Postgres是否有帮助——同样的错误。
create_table "classcodes", :force => true do |t|
t.string "classcode"
t.string "classdesc"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "archive", :default => false
end