Importando base de datos antigua a la última versión

Gracias por tu respuesta, pero simplemente eliminar las encuestas no es una solución para los registros duplicados. Supongo que en algún momento temprano la importación de phpbb3 fue incorrecta y creó esos registros. Son válidos, solo tienen UUID duplicados ya que el importador original no lo comprobó.

De todos modos, la solución para cualquiera que se encuentre con este problema es hacer lo siguiente:

  1. Cambia los registros problemáticos en la tabla post_custom_fields para moverlos. Es mejor hacerlo de esa manera en lugar de esperar unos minutos a que se reconstruya solo para ver otro error.

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. Ejecuta la reconstrucción de la aplicación, la actualización o lo que sea que el usuario esté intentando hacer.

  2. Conéctate al contenedor en vivo después de que todo se reconstruya y se inicie.

  3. Vuelve a cambiar el nombre de las encuestas a su nomenclatura original:

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. Ejecuta la migración que causa el problema manualmente desde dentro del contenedor de la aplicación, ten en cuenta que VERSION es el número en el nombre del archivo de la migración.

Primero, deshaz la migración, esto no hará nada ya que el método down no hace nada a la base de datos:

rake db:migrate:down VERSION=20180820080623

Ejecuta la migración y busca el primer error:

rake db:migrate:up VERSION=20180820080623

  1. Busca en la tabla usando alguna GUI de base de datos para facilitar la edición del UUID que causa el problema:

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

  1. Ahora la parte complicada. El UUID es el identificador de la respuesta/opción de la encuesta, así que lo que tienes que hacer es cambiar ese UUID en la fila poll, digamos de 731ef6901e968fc3f4e785fcb9e9abe8 a 731ef6901e968fc3f4e785fcb9e9abe9. Es muy poco probable que encuentres otro igual en tu sistema. Pero después de hacer esto, también necesitas encontrar el correspondiente en poll-votes y cambiarlo a tu nuevo UUID. De esta manera, no perderás votos ni respuestas.

  2. Ejecuta la migración de nuevo y busca el siguiente error:

rake db:migrate:up VERSION=20180820080623

  1. Repite este proceso hasta que la migración se complete y hayas migrado todas las encuestas a tus nuevas tablas.

Me decepciona que nadie se molestara en responder y explicar qué es ese UUID y a qué se refiere. Sé que es de código abierto y sé que han pasado años desde que se comprometió, no me quejo, pero sería muy apreciada alguna ayuda de las personas que realmente hacen commits en el repositorio oficial.

El problema se resolvió, así que días felices.

¡Gracias!