Grazie per la tua risposta, ma rimuovere semplicemente i sondaggi non è una soluzione per i record duplicati. Presumo che da qualche parte all’inizio l’importazione da phpbb3 sia stata errata e abbia creato quei record. Sono validi, hanno solo UUID duplicati poiché l’importazione originale non ha controllato questo aspetto.
Comunque, la soluzione per chiunque si imbatta in questo problema è fare quanto segue:
- Modifica i record problematici nella tabella
post_custom_fieldsper spostarli. È meglio farlo in questo modo piuttosto che aspettare qualche minuto per la ricostruzione solo per vedere un altro errore.
update post_custom_fields set name = 'polls' where name = 'polls_bak';
update post_custom_fields set name = 'polls-votes' where name = 'polls-votes_bak';
-
Esegui la ricostruzione dell’app, l’aggiornamento o qualsiasi altra cosa l’utente stia cercando di fare.
-
Connettiti al container live in esecuzione dopo che tutto è stato compilato e avviato.
-
Ripristina i nomi originali dei sondaggi:
update post_custom_fields set name = 'polls'_bak' where name = 'polls';
update post_custom_fields set name = 'polls-votes_bak'' where name = 'polls-votes';
- Esegui la migrazione che causa il problema manualmente dall’interno del container dell’app, nota che VERSION è il numero nel nome del file della migrazione
prima annulla la migrazione, questo non farà nulla poiché il metodo down non fa nulla al database:
rake db:migrate:down VERSION=20180820080623
esegui la migrazione e cerca il primo errore:
rake db:migrate:up VERSION=20180820080623
- Cerca nella tabella usando una GUI del database per un editing più semplice l’UUID che causa il problema:
select from post_custom_fields where value like '%your_UUID%';
-
Ora la parte difficile. L’UUID è l’identificatore della risposta/opzione del sondaggio, quindi quello che devi fare è cambiare quell’UUID sulla riga
polldiciamo da731ef6901e968fc3f4e785fcb9e9abe8a731ef6901e968fc3f4e785fcb9e9abe9è molto improbabile che tu ne trovi un altro come questo nel tuo sistema. Ma dopo averlo fatto, devi anche trovare quello corrispondente inpoll-votese cambiarlo con il tuo nuovo. In questo modo non perderai voti o risposte. -
Esegui nuovamente la migrazione e cerca il prossimo errore:
rake db:migrate:up VERSION=20180820080623
- Ripeti questo processo finché la migrazione non viene completata e hai migrato tutti i sondaggi nelle tue nuove tabelle.
Sono deluso dal fatto che nessuno si sia nemmeno preoccupato di rispondere e spiegare cos’è quell’UUID e a cosa si riferisce. So che è open source e so che sono passati anni da quando è stato committato, non mi lamento, ma un qualche tipo di assistenza da parte delle persone che effettivamente fanno commit sul repository ufficiale sarebbe molto apprezzata.
Il problema è stato risolto, quindi felici giorni.
Grazie!