Ruby on rails 保存模型时出现Postgres错误

Ruby on rails 保存模型时出现Postgres错误,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,所以我一直在搜索,没有找到任何相关的东西。如果有人能帮我,我会非常感激的 在rails中保存模型时,我不断遇到此错误 PG::UniqueViolation:错误:重复键值违反唯一约束“addresses_pkey” 我没有任何索引地址\u pkey 我猜主键计数器不知怎么坏了,但不确定如何在Heroku上修复它 它似乎试图在主键中为addresses表创建相同的值,而这不应该发生 作为解决方法,您还可以尝试以下命令: rake db:drop rake db:create rake db:m

所以我一直在搜索,没有找到任何相关的东西。如果有人能帮我,我会非常感激的

在rails中保存模型时,我不断遇到此错误

PG::UniqueViolation:错误:重复键值违反唯一约束“addresses_pkey”

我没有任何索引
地址\u pkey


我猜主键计数器不知怎么坏了,但不确定如何在Heroku上修复它

它似乎试图在主键中为addresses表创建相同的值,而这不应该发生

作为解决方法,您还可以尝试以下命令:

rake db:drop
rake db:create 
rake db:migrate
希罗库

heroku pg:reset DATABASE_URL
heroku run rake db:setup

问题是我导入了一些数据,这些数据弄乱了序列,所以我使用这个rake任务重置了所有序列

 namespace :db do
  desc 'reset sequences for a specific table or all tables'
  task sequence_reset: :environment do
    sql = <<~SQL
      SELECT 'SELECT SETVAL(' ||
             quote_literal(quote_ident(PGT.schemaname) || '.' || quote_ident(S.relname)) ||
             ', COALESCE(MAX(' ||quote_ident(C.attname)|| '), 1) ) FROM ' ||
             quote_ident(PGT.schemaname)|| '.'||quote_ident(T.relname)|| ';' as query
      FROM pg_class AS S,
           pg_depend AS D,
           pg_class AS T,
           pg_attribute AS C,
           pg_tables AS PGT
      WHERE S.relkind = 'S'
          AND S.oid = D.objid
          AND D.refobjid = T.oid
          AND D.refobjid = C.attrelid
          AND D.refobjsubid = C.attnum
          AND T.relname = PGT.tablename
      ORDER BY S.relname;
    SQL

    ActiveRecord::Base.connection.execute(sql).each do |query|
      ActiveRecord::Base.connection.execute(query['query'])
    end
  end
end
名称空间:db do
描述“特定表格或所有表格的重置顺序”
任务序列_重置::环境do

sql=在处理产品数据时,这些并不是真正的选项。但我解决了我的问题。我导入数据时把顺序弄乱了。