Je travaille actuellement sur l’importation de données depuis un forum personnalisé vers Discourse. Le forum hérité compte environ 30 000 sujets, et idéalement, je souhaiterais les marquer tous comme lus pendant le processus d’importation. Si je comprends bien, la table concernée est post_timings.
Ma question est la suivante : est-ce suffisant d’ajouter une entrée dans post_timings pour le dernier message de chaque sujet pour chaque utilisateur ? Ou devrais-je ajouter une entrée pour chaque message, soit environ 700 000 messages × 2 000 utilisateurs ?
Pour ajouter quelques détails sur mon cas d’usage spécifique : le logiciel de forum hérité que nous sommes en train de migrer est limité mais simple, et nos membres ont un large éventail d’âges et de niveaux de compétence technique. Nous avons configuré une instance Discourse pour que les membres puissent l’essayer pendant que nous préparons la migration, et nous avons reçu quelques commentaires indiquant qu’elle est plutôt intimidante.
Je pense qu’il s’agit simplement de la courbe d’apprentissage — je ressens un peu cela moi-même, et je suis pourtant un professionnel de l’informatique. Une fois que les gens s’habitueront au changement, je pense qu’ils verront que Discourse est une nette amélioration par rapport au logiciel hérité.
Ce qui m’inquiète, c’est de perdre des membres avant qu’ils n’atteignent ce stade. Si les utilisateurs sont renvoyés au premier message d’un sujet de 1 000 messages dès que quelqu’un répond à un thread importé, cela porte un coup important à l’ergonomie, et il est possible que certains membres abandonnent tout simplement. Je suis donc très intéressé à marquer tous les messages importés comme lus et à permettre aux utilisateurs d’accéder directement au nouveau contenu.
J’ai cherché dans les archives avant de publier ce message, mais je n’ai rien trouvé qui réponde à cette question précise.
Vous devez créer des enregistrements dans la table topic_users et dans la table post_timings. Vous pouvez soit utiliser les méthodes des modèles TopicUser et PostTiming, soit procéder de manière plus efficace en utilisant SQL.
Voici un exemple tiré du script d’importation de base qui marque les publications comme lues par leurs auteurs. Vous devrez l’adapter à votre cas d’utilisation.