Questo è stato chiesto più volte prima (here e here e altro).Rails su heroku: dopo push, ottieni "PG :: UniqueViolation: ERRORE: valore chiave duplicato viola un vincolo univoco"
Ogni volta che spingo i miei rotaie app per Heroku (almeno per gli ultimi mesi, direi), devo resettare le mie chiavi utilizzando l'incantesimo familiare
ActiveRecord::Base.connection.tables.each { |t| ActiveRecord::Base.connection.reset_pk_sequence!(t) }
. In caso contrario, ricevo errori di PostgreSQL come questo quando cerco di creare nuovi record:
(Questo è un esempio, accade su vari tavoli, a seconda di ciò che la prima azione è che è fatto su App dopo una spinta.
Una volta eseguita l'incantazione dei tasti di reset, è possibile fino alla mia prossima spinta su heroku ... anche quando il mio push non include alcuna migrazione.
Sono un po 'sconcertato sul perché questo sta accadendo e su cosa si può fare per impedirlo.
No, non esiste un codice di manipolazione datatable nelle attività di distribuzione.
Mi chiedo se abbia qualcosa a che fare con il fatto che si tratta di un tavolo di join HABTM? – Beartech
Ho aggiornato la domanda per provare a rendere più chiaro che non si verifica solo su questa tabella; quello era un esempio Sono abbastanza sicuro che sia successo anche sui tavoli non intersezioni, ma guarderò più da vicino la prossima volta che succede. – denishaskin
L'unica cosa che posso pensare per aiutare a diagnosticare è guardare i registri di Heroku nello stesso momento in cui si preme l'aggiornamento fino a quando non si ottiene l'errore. Fai un 'heroku logs --tail' in un'altra finestra prima del push e guardalo dal vivo. Confrontalo con il log nel tuo ambiente dev locale. – Beartech