Qualche mese fa ho installato Discourse, ho aggiunto alcuni argomenti come Argomento Indice nella sezione Modalità Documentazione. Tutto ha funzionato come previsto.
ho eseguito il backup di tutto, ho cancellato l’account Digital Ocean, ecc.
Qualche giorno fa ho reinstallato Discourse e ho ripristinato tutto dal file di backup che avevo creato e tutto funziona, tranne le sezioni Documentazione. All’inizio ho pensato che il problema fosse che avevo rimosso la lista di quegli argomenti indice, ma erano già stati rimossi prima che disinstallassi tutto e funzionavano, quindi non poteva essere quello il problema. Comunque, ho provato a elencarli, ma senza successo. La barra laterale mostrava ancora le categorie e tutte le altre cose predefinite.
Poi ho deciso di copiare il contenuto dell’argomento originale e creare un nuovo argomento con quel contenuto, impostarlo come Argomento Indice, e quello funziona. Anche chiuso e non elencato come quello che non funziona, quindi chiudere e non elencare non è il problema.
Sembra che nel processo di ripristino, qualcosa stia rompendo la modalità documentazione per qualche motivo.
Grazie per il link.
Dato che sto ancora costruendo l’intera struttura, ho finito per creare un nuovo argomento, copiare e incollare il contenuto da quello vecchio ed eliminare il vecchio argomento. Ne avevo solo 2 comunque.
Quindi, la mia domanda è: quel rake task è qualcosa che devo eseguire ogni volta che aggiorno Discourse? O solo quando ripristino (se lo farò di nuovo in futuro)?
No, quel rake task è solo una cosa una tantum dalla data di quel post citato.
Non dovresti aver bisogno di ricreare l’argomento, ma almeno andare nelle impostazioni della categoria, scollegare, salvare e ricollegare l’argomento esistente dovrebbe funzionare.
Da quanto ricordo a quel tempo, non poteva essere una migrazione. Le migrazioni idealmente non toccano il codice dell’applicazione (poiché il codice può divergere da quando la migrazione è prevista e causare errori).
Questa PR include anche un’attività rake (doc_categories.rake) per ricostruire le sezioni e i link della barra laterale dagli argomenti attivi dell’indice dei documenti: questo non è esattamente consigliato da fare in una migrazione poiché comporterebbe l’uso del parser o di nokogiri (le cui implementazioni possono divergere e causare una migrazione non valida).
Quindi, se ho capito bene, d’ora in poi non ho più bisogno di fare nulla di tutto ciò? Il rake task o il processo di ricollegamento, ogni volta che aggiorno Discourse?