Ошибка Postgres при сохранении модели - PullRequest
0 голосов
/ 15 мая 2018

Так что я искал, не мог найти что-нибудь релевантное.был бы очень признателен, если бы кто-нибудь мог мне помочь

У меня нет индекса addresses_pkey.

Я предполагаю, что счетчик первичного ключа отключен, но не совсем уверен, как это исправить на Heroku.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Проблема заключалась в том, что я импортировал некоторые данные, которые испортили последовательность, поэтому я сбросил всю свою последовательность, используя эту задачу 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
0 голосов
/ 15 мая 2018

Похоже, что он пытается создать то же значение в первичном ключе для таблицы адресов, чего не должно быть.

В качестве обходного пути вы также можете попробовать следующие команды:

rake db:drop
rake db:create 
rake db:migrate

Для Heroku

heroku pg:reset DATABASE_URL
heroku run rake db:setup
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...