O que está acontecendo aqui é o seguinte
-
Algumas pessoas têm uma versão muito antiga do plugin de perguntas e respostas com meu nome de usuário pessoal do GitHub na URL do repositório em seu arquivo app.yml.
-
Transfiri o plugin QnA para
paviliondevanos atrás. O Github redireciona URLs de repositório quando eles são transferidos, então as URLs antigas com meu nome de usuário pessoal continuaram funcionando. -
Mais anos depois, o Pavilion transferiu o Plugin de Perguntas e Respostas para o Discourse. O Discourse inicialmente manteve o nome
discourse-question-answer. -
Há alguns meses, criei meu próprio fork do plugin hospedado em
discourse, enquanto ele ainda era chamadodiscourse-question-answer. -
Pessoas com links muito antigos para o plugin QnA com minha conta pessoal do GitHub nelas estavam agora clonando meu novo fork do
discourse-question-answersignificativamente atualizado, hospedado emdiscourse. Em outras palavras, um link muito antigo agora apontava para um fork de um novo plugin. Apesar dos anos que se passaram, eu deveria ter previsto isso, então peço desculpas por isso. Removi esse fork. -
O Discourse mudou o nome de
discourse-question-answerparadiscourse-upvotes. Essa mudança de nome não teve um impacto material no seu caso @Jaap-Jan_Swijnenburg, mas é por isso que você agora está (inesperadamente) clonando um fork desse repositório. -
Uma migração em
discourse/discourse-upvotes(exdiscourse-question-answer) assume que a colunavalueempost_custom_fieldsé do tipo JSON. -
Dados antigos criados pelo plugin quando era
angusmcleod/discourse-question-answer(anos atrás) não foram salvos como JSON válido pela preocupaçãoHasCustomFieldsemdiscourse/discourse. Estou adivinhando, mas esses dados provavelmente foram adicionados antes que a verificação de tipo JSON fosse adicionada há 4 anos (Ainda é possível acabar com JSON inválido em campos personalizados registrados como JSON em casos extremos).
Portanto
- Quando pessoas com a URL (desatualizada há anos)
angusmcleod/discourse-question-answerem seu app.yml atualizam seu Discourse, a migração na nova versão do plugin é clonada, a migração é executada e potencialmente cria esse erro.
Existem algumas soluções para isso:
-
@Jaap-Jan_Swijnenburg, no seu caso, você só precisa remover a referência ao meu antigo plugin QnA e poderá reconstruir seu site. É só isso; nada mais. Parece que foi o que você fez

-
A migração do plugin
discourse/discourse-upvotespoderia ser atualizada para lidar com valores não JSON na colunavalueempost_custom_fields.
Observo que 2 também lidaria com o caso adicional de pessoas que realmente desejam mudar de uma versão antiga do plugin QnA para discourse-upvotes. Nesse caso, a migração será executada e falhará se alguma entrada na coluna value de post_custom_fields não for um JSON válido.