Ich arbeite derzeit daran, Daten aus einem selbstentwickelten Forum in Discourse zu importieren. Das alte Forum hat etwa 30.000 Themen, und ich würde diese idealerweise während des Imports alle als gelesen markieren. Soweit ich verstehe, ist die relevante Tabelle hier post_timings.
Meine Frage ist: Reicht es aus, für jeden Benutzer einen Eintrag in post_timings für den neuesten Beitrag in jedem Thema hinzuzufügen? Oder müsste ich einen Eintrag für jeden einzelnen Beitrag hinzufügen, also etwa 700.000 Beiträge * 2.000 Benutzer?
Ich möchte noch einige Details zu meinem spezifischen Anwendungsfall hinzufügen: Die alte Forensoftware, von der wir migrieren, ist zwar begrenzt, aber einfach, und unsere Mitglieder haben ein breites Spektrum an Altersgruppen und technischen Kenntnissen. Wir haben eine Discourse-Instanz für Mitglieder eingerichtet, damit sie diese testen können, während wir die Migration vorbereiten, und wir haben bereits einige Rückmeldungen erhalten, dass sie recht überwältigend wirkt.
Ich denke, das liegt einfach an der Lernkurve – ich fühle das selbst ein wenig, obwohl ich ein IT-Experte bin. Sobald sich die Menschen an die Änderung gewöhnt haben, werden sie meiner Meinung nach erkennen, dass Discourse eine deutliche Verbesserung gegenüber der alten Software darstellt.
Meine Sorge ist jedoch, dass wir Mitglieder verlieren, bevor sie diesen Punkt erreichen. Wenn Nutzer beim ersten Mal, wenn jemand auf einen importierten Thread antwortet, automatisch zum ersten Beitrag eines Themas mit 1.000 Beiträgen zurückgeschickt werden, ist das ein erhebliches Usability-Problem. Ich halte es für möglich, dass einige Mitglieder dann einfach aufgeben. Daher ist es mir sehr wichtig, alle importierten Beiträge als gelesen zu markieren, damit Nutzer direkt zu den neuen Inhalten gelangen können.
Ich habe vor dem Posten dieses Beitrags das Archiv durchsucht, konnte aber nichts finden, das diese spezifische Frage beantwortet.
Sie müssen Einträge in der Tabelle topic_users und in der Tabelle post_timings erstellen. Sie können entweder die Methoden in den Modellen TopicUser und PostTiming verwenden oder dies effizienter mit SQL erledigen.
Hier ist ein Beispiel aus dem Basis-Import-Skript, das Beiträge als gelesen für deren Autoren markiert. Sie müssten es an Ihren Anwendungsfall anpassen.