Obrigado pela sua resposta, mas simplesmente remover as enquetes não é uma solução para registros duplicados. Presumo que em algum momento inicial a importação do phpbb3 foi incorreta e criou esses registros. Eles são válidos, apenas têm UUIDs duplicados, já que a importação original não verificou isso.
De qualquer forma, a solução para quem encontrar este problema é fazer o seguinte:
- Altere os registros problemáticos na tabela
post_custom_fieldspara afastá-los. É melhor fazer isso em vez de esperar alguns minutos pela reconstrução apenas para ver outro erro.
update post_custom_fields set name = 'polls' where name = 'polls_bak';
update post_custom_fields set name = 'polls-votes' where name = 'polls-votes_bak';
-
Execute a reconstrução do aplicativo, atualização ou o que quer que o usuário esteja tentando fazer.
-
Conecte-se ao contêiner em execução ao vivo depois que tudo for construído e iniciado.
-
Altere as enquetes de volta para a 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';
- Execute a migração que causa o problema manualmente de dentro do contêiner do aplicativo, observe que
VERSIONé o número no nome do arquivo da migração
Primeiro desfaça a migração, isso não fará nada, pois o método down não faz nada no banco de dados:
rake db:migrate:down VERSION=20180820080623
Execute a migração e procure o primeiro erro:
rake db:migrate:up VERSION=20180820080623
- Pesquise na tabela usando alguma GUI de banco de dados para facilitar a edição do UUID que causa o problema:
select from post_custom_fields where value like '%your_UUID%';
-
Agora a parte complicada. O UUID é o identificador da resposta/opção da enquete, então o que você tem que fazer é alterar esse UUID na linha
poll, digamos de731ef6901e968fc3f4e785fcb9e9abe8para731ef6901e968fc3f4e785fcb9e9abe9. É muito improvável que você encontre outro igual no seu sistema. Mas depois de fazer isso, você também precisa encontrar o correspondente empoll-votese alterá-lo para o seu novo. Dessa forma, você não perderá nenhum voto ou resposta. -
Execute a migração novamente e procure o próximo erro:
rake db:migrate:up VERSION=20180820080623
- Repita este processo até que a migração seja concluída e você tenha todas as enquetes migradas para suas novas tabelas.
Estou decepcionado que ninguém se preocupou em responder e explicar o que é esse UUID e a que ele se refere. Eu sei que é open source e sei que se passaram anos desde que foi commitado, não estou reclamando, mas alguma assistência das pessoas que realmente fazem commits no repositório oficial seria muito apreciada.
O problema foi resolvido, então dias felizes.
Obrigado!