Importation de l'ancienne base de données vers la dernière version

Merci pour votre réponse, mais supprimer simplement les sondages n’est pas une solution aux enregistrements en double. Je suppose que quelque part au début, l’importation depuis phpbb3 a été incorrecte et a créé ces enregistrements. Ils sont valides, ils ont juste des UUID en double car l’importation d’origine ne vérifiait pas cela.

Quoi qu’il en soit, la solution pour quiconque rencontre ce problème est la suivante :

  1. Modifiez les enregistrements problématiques dans la table post_custom_fields pour les mettre de côté. Il est préférable de procéder ainsi plutôt que d’attendre quelques minutes la reconstruction pour voir une autre erreur.

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. Lancez la reconstruction de l’application, la mise à jour ou tout ce que l’utilisateur essaie de faire.

  2. Connectez-vous au conteneur en cours d’exécution après que tout soit construit et démarré.

  3. Remettez les sondages à leur nom d’origine :

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. Lancez manuellement la migration qui cause le problème depuis l’intérieur du conteneur de l’application. Notez que VERSION est le numéro dans le nom de fichier de la migration.

D’abord, annulez la migration, cela ne fera rien car la méthode down n’affecte pas la base de données :

rake db:migrate:down VERSION=20180820080623

Exécutez la migration et recherchez la première erreur :

rake db:migrate:up VERSION=20180820080623

  1. Recherchez dans la table à l’aide d’une interface graphique de base de données pour faciliter l’édition de l’UUID qui cause le problème :

select from post_custom_fields where value like '%your_UUID%';

  1. Maintenant, la partie délicate. L’UUID est l’identifiant de la réponse/option du sondage, vous devez donc modifier cet UUID sur la ligne poll, disons de 731ef6901e968fc3f4e785fcb9e9abe8 à 731ef6901e968fc3f4e785fcb9e9abe9. Il est très peu probable que vous en trouviez un autre comme celui-ci dans votre système. Mais après cela, vous devez également trouver celui correspondant dans poll-votes et le modifier avec votre nouveau. De cette façon, vous ne perdrez aucun vote ni aucune réponse.

  2. Exécutez à nouveau la migration et recherchez la prochaine erreur :

rake db:migrate:up VERSION=20180820080623

  1. Répétez ce processus jusqu’à ce que la migration soit terminée et que tous les sondages soient migrés vers vos nouvelles tables.

Je suis déçu que personne n’ait pris la peine de répondre et d’expliquer ce qu’est cet UUID et à quoi il se réfère. Je sais que c’est open source et je sais que des années se sont écoulées depuis son engagement, je ne me plains pas, mais une aide de la part des personnes qui font des commits sur le dépôt officiel serait très appréciée.

Le problème a été résolu, donc tout va bien.

Merci !