Acabei de mover um fórum de name.com para forum.name.com, mas falhou:
Erro: ERRO: valor de chave duplicada viola a restrição de unicidade “unique_post_links”
DETALHE: A chave (topic_id, post_id, url)=(246, 813, http://forum.name.com) já existe.
O remapeamento foi aplicado apenas parcialmente devido ao erro acima. Por favor, execute o script novamente.
Então, executei-o novamente (falhou novamente), depois fiz rake posts:rebake e verifiquei o fórum, encontrando algumas instâncias de forum.forum.name.com. (Então, executei discourse remap forum.forum.name.com forum.name.com e rake posts:rebake para tentar corrigir — com algum sucesso; precisei alterar algumas instâncias manualmente).
Tenho algumas perguntas:
O comando discourse remap name.com forum.name.com aplica-se apenas ao conteúdo das postagens? Caso contrário, devo verificar apenas as Configurações do Site para encontrar possíveis problemas?
Ele deve ser executado dentro de alguma transação? (Se sim, não pareceu ser o caso quando falhou para mim).
Verifiquei todas as configurações do site e elas estão corretas (assim como os temas), e acredito que tudo o que está acima foi concluído. Você consegue identificar algo que deveria ter sido feito, mas não foi? Você acha que é seguro continuar assim ou acha que precisa ser refazido do zero?
Além disso, tem alguma ideia do motivo pelo qual os erros duplicate key value violates unique constraint estão ficando mais frequentes no Discourse? Notei alguns tópicos sobre isso e acho que esta é a terceira vez que tenho esse problema pessoalmente.
Não, pelo resultado não. Só exibimos tabelas com alterações. Não há como saber se uma tabela não está na lista por causa do erro ou simplesmente porque não havia instâncias de name.com na tabela (não listada).
Infelizmente, isso está além da minha especialidade.
Alguma ideia do que os números significam? Quantidade de alterações?
Qual é o caminho recomendado agora? Corrigir o erro de restrição de unicidade e depois reverter (voltar de forum.name.com para name.com e depois novamente) ou fazer algo diferente?
Edição: feito
Acessei o aplicativo e o console do Rails, excluí o TopicLink em questão e depois voltei de forum.name.com para name.com e, em seguida, novamente.