Importazione del vecchio database alla versione più recente

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:

  1. Modifica i record problematici nella tabella post_custom_fields per 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';

  1. Esegui la ricostruzione dell’app, l’aggiornamento o qualsiasi altra cosa l’utente stia cercando di fare.

  2. Connettiti al container live in esecuzione dopo che tutto è stato compilato e avviato.

  3. 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';

  1. 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

  1. 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%';

  1. Ora la parte difficile. L’UUID è l’identificatore della risposta/opzione del sondaggio, quindi quello che devi fare è cambiare quell’UUID sulla riga poll diciamo da 731ef6901e968fc3f4e785fcb9e9abe8 a 731ef6901e968fc3f4e785fcb9e9abe9 è molto improbabile che tu ne trovi un altro come questo nel tuo sistema. Ma dopo averlo fatto, devi anche trovare quello corrispondente in poll-votes e cambiarlo con il tuo nuovo. In questo modo non perderai voti o risposte.

  2. Esegui nuovamente la migrazione e cerca il prossimo errore:

rake db:migrate:up VERSION=20180820080623

  1. 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!