Ecco cosa sta succedendo:
-
Alcune persone hanno una versione molto vecchia del plugin “question answer” con il mio nome utente GitHub personale nell’URL del repository nel loro file
app.yml. -
Anni fa ho trasferito il plugin QnA a
paviliondev. GitHub reindirizza gli URL dei repository quando vengono trasferiti, quindi i vecchi URL con il mio nome utente personale continuavano a funzionare. -
Anni dopo, Pavilion ha trasferito il plugin Question Answer a Discourse. Inizialmente Discourse ha mantenuto il nome
discourse-question-answer. -
Pochi mesi fa ho creato un mio fork del plugin ospitato in
discourse, mentre era ancora chiamatodiscourse-question-answer. -
Le persone con collegamenti molto vecchi al plugin QnA con il mio account GitHub personale stavano ora clonando il mio nuovo fork del plugin
discourse-question-answersignificativamente aggiornato, ospitato indiscourse. In altre parole, un link molto vecchio ora puntava a un fork di un nuovo plugin. Nonostante gli anni trascorsi, avrei dovuto prevederlo, quindi mi scuso per questo. Ho rimosso quel fork. -
Discourse ha cambiato il nome di
discourse-question-answerindiscourse-upvotes. Questo cambio di nome non ha avuto un impatto materiale sul tuo caso @Jaap-Jan_Swijnenburg, ma è il motivo per cui ora stai (inaspettatamente) clonando un fork di quel repository. -
Una migrazione in
discourse/discourse-upvotes(exdiscourse-question-answer) presuppone che la colonnavalueinpost_custom_fieldssia di tipo JSON. -
I vecchi dati creati dal plugin quando era
angusmcleod/discourse-question-answer(anni fa) non sono stati salvati come JSON valido dalla “concern”HasCustomFieldsindiscourse/discourse. Sto ipotizzando, ma questi dati sono stati probabilmente aggiunti prima che il controllo del tipo JSON venisse aggiunto 4 anni fa (È ancora possibile che si verifichino JSON non validi nei campi personalizzati registrati come JSON in casi limite).
Pertanto
- Quando le persone con l’URL (vecchio di anni)
angusmcleod/discourse-question-answernel loroapp.ymlaggiornano il loro Discourse, viene clonato il plugin della nuova versione, la migrazione viene eseguita e potenzialmente crea questo errore.
Ci sono alcune soluzioni a questo problema:
-
@Jaap-Jan_Swijnenburg nel tuo caso devi solo rimuovere il riferimento al mio vecchio plugin QnA e potrai ricostruire il tuo sito. Questo è tutto; niente di più. Sembra che tu l’abbia fatto

-
La migrazione del plugin
discourse/discourse-upvotespotrebbe essere aggiornata per gestire valori non JSON nella colonnavalueinpost_custom_fields.
Noterei che 2 gestirebbe anche il caso aggiuntivo di persone che desiderano effettivamente passare da una vecchia versione del plugin QnA a discourse-upvotes. In tal caso, la migrazione verrà eseguita e fallirà se una qualsiasi voce nella colonna value di post_custom_fields non è un JSON valido.