Это задано несколько раз (here и here и т. Д.).Rails on heroku: after push, get «PG :: UniqueViolation: ERROR: дублирующее значение ключа нарушает уникальное ограничение»
Каждый раз, когда я нажимаю мои рельсы приложение к Heroku (по крайней мере, за последние несколько месяцев, я бы сказал), я должен сбросить свои ключи, используя знакомые
ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.reset_pk_sequence!(t) }
колдовство. В противном случае я получаю PostGreSQL неудачи, как это, когда я пытаюсь создать новые записи:
(Это пример, это происходит на различных таблицах, в зависимости от того, что первые действия в том, что делается на приложение после толчка.)
Как только я делаю заклинание сброса ключей, это нормально до моего следующего нажатия на герою ... даже когда мой push не включает никаких миграций.
Я немного озадачен тем, почему это происходит и что можно сделать, чтобы предотвратить его.
Нет, в моих задачах развертывания нет кода обработки данных.
Интересно, имеет ли он какое-то отношение к тому факту, что это таблица соединений HABTM? – Beartech
Я обновил вопрос, чтобы попытаться сделать его более ясным, что это происходит не только на этой таблице; это был пример. Я уверен, что это произошло и на таблицах без пересечения, но в следующий раз я буду смотреть внимательно. – denishaskin
Единственное, что я могу придумать, чтобы помочь диагностировать, - это следить за журналами Heroku в то же самое время, когда вы нажимаете обновление до тех пор, пока не получите ошибку. Делайте 'heroku logs -tail' в другом окне перед нажатием и смотрите его вживую. Сравните это с журналом в локальной локальной среде. – Beartech