Plugin Documentation - L'index du sujet ne fonctionne pas après la restauration

Il y a quelques mois, j’ai installé Discourse, ajouté quelques sujets comme sujet d’index dans la section Mode Documentation. Tout a fonctionné comme prévu.
J’ai sauvegardé le tout, supprimé le compte Digital Ocean, etc.

Il y a quelques jours, j’ai réinstallé Discourse et restauré tout à partir du fichier de sauvegarde que j’avais créé, et tout fonctionne, sauf les sections Documentation. Au début, j’ai pensé que le problème était que j’avais retiré ces sujets d’index de la liste, mais ils étaient déjà retirés avant que je désinstalle tout et qu’ils fonctionnaient, donc ce ne pouvait pas être le problème. Pourtant, j’ai essayé de les remettre dans la liste, mais sans succès. La barre latérale affichait toujours les catégories et tout le reste qui est par défaut.

Ensuite, j’ai décidé de copier le contenu du sujet original et de créer un nouveau sujet avec ce contenu, de le définir comme sujet d’index, et celui-ci fonctionne. Également fermé et retiré de la liste comme celui qui ne fonctionne pas, donc fermer et retirer de la liste n’est pas le problème.

Il semble que lors du processus de restauration, quelque chose casse le mode documentation pour une raison quelconque.

Juste pour vérifier - avez-vous vu ceci ?

1 « J'aime »

Merci pour le lien.
Comme je suis encore en train de construire toute la structure, j’ai fini par créer un nouveau sujet, copier-coller le contenu de l’ancien et supprimer l’ancien sujet. Je n’en avais que 2 de toute façon.

Donc, ma question est : cette rake task est-elle quelque chose que je dois faire à chaque fois que je mets à jour Discourse ? Ou seulement lors de la restauration (si je le fais à nouveau à l’avenir) ?

Non, cette tâche rake n’est qu’une chose ponctuelle à partir de la date de cette publication citée.
Vous ne devriez pas avoir besoin de recréer le sujet, il suffit d’aller dans les paramètres de la catégorie, de dissocier, d’enregistrer, puis de resocier le sujet existant au moins devrait fonctionner.

Je me demande juste - pourquoi cela n’a-t-il pas été implémenté comme une migration ?

D’après ce dont je me souviens à ce moment-là, cela ne pouvait pas être une migration. Les migrations ne touchent idéalement pas le code de l’application (car le code peut dériver par rapport au moment où la migration est prévue et provoquer une erreur).

Le PR indique également la raison :

Ce PR inclut également une tâche rake (doc_categories.rake) pour reconstruire les sections et les liens de la barre latérale à partir des sujets d’index de documentation actifs – ce n’est pas exactement recommandé de le faire dans une migration car cela impliquerait soit d’utiliser l’analyseur, soit nokogiri (dont les implémentations peuvent dériver et provoquer une migration invalide).

2 « J'aime »

Donc, si je comprends bien, à partir de maintenant, je n’ai plus besoin de faire tout cela ? La tâche rake ou le processus de relink, chaque fois que je mets à jour Discourse ?

Je veux juste m’assurer que j’ai bien compris.

Oui. C’était juste une chose unique.

3 « J'aime »

Génial ! Merci pour la clarification ! :raising_hands:

1 « J'aime »