Lo que sucede aquí es lo siguiente:
-
Algunas personas tienen una versión muy antigua del plugin de preguntas y respuestas con mi nombre de usuario personal de GitHub en la URL del repositorio en su archivo app.yml.
-
Hace años transferí el plugin QnA a
paviliondev. Github redirige las URL de los repositorios cuando se transfieren, por lo que las URL antiguas con mi nombre de usuario personal siguieron funcionando. -
Años después, Pavilion transfirió el Plugin de Preguntas y Respuestas a Discourse. Discourse inicialmente mantuvo el nombre
discourse-question-answer. -
Hace unos meses creé mi propia bifurcación (fork) del plugin alojado en
discourse, mientras todavía se llamabadiscourse-question-answer. -
Las personas con enlaces muy antiguos al plugin QnA con mi cuenta personal de GitHub ahora estaban clonando mi nueva bifurcación del
discourse-question-answersignificativamente actualizado alojado endiscourse. En otras palabras, un enlace muy antiguo ahora apuntaba a una bifurcación de un nuevo plugin. A pesar de los años transcurridos, debería haberlo previsto, así que disculpas por ello. He eliminado esa bifurcación. -
Discourse cambió el nombre de
discourse-question-answeradiscourse-upvotes. Este cambio de nombre no ha tenido un impacto material en su caso @Jaap-Jan_Swijnenburg, pero es la razón por la que ahora está clonando (inesperadamente) una bifurcación de ese repositorio. -
Una migración en
discourse/discourse-upvotes(anteriormentediscourse-question-answer) asume que la columnavalueenpost_custom_fieldses segura para JSON. -
Los datos antiguos creados por el plugin cuando era
angusmcleod/discourse-question-answer(hace años) no se guardaron como JSON válido por la preocupaciónHasCustomFieldsendiscourse/discourse. Supongo, pero es probable que estos datos se agregaran antes de que se agregara la verificación de tipo JSON hace 4 años (todavía es posible terminar con JSON no válido en campos personalizados registrados como JSON en casos extremos).
Por lo tanto:
- Cuando las personas con la URL (obsoleta desde hace años)
angusmcleod/discourse-question-answeren su app.yml actualizan su Discourse, se clona la migración en la nueva versión del plugin, se ejecuta la migración y potencialmente se crea este error.
Hay algunas soluciones para esto:
-
@Jaap-Jan_Swijnenburg en su caso, solo necesita eliminar la referencia a mi antiguo plugin QnA y podrá reconstruir su sitio. Eso es todo; nada más. Parece que eso es lo que ha hecho

-
La migración del plugin
discourse/discourse-upvotes(anteriormentediscourse-question-answer) podría actualizarse para manejar valores no JSON en la columnavalueenpost_custom_fields.
Observaría que la opción 2 también manejaría el caso adicional de personas que realmente desean cambiar de una versión antigua del plugin QnA a discourse-upvotes. En ese caso, la migración se ejecutará y fallará si alguna entrada en la columna value de post_custom_fields no es JSON válido.