Von XenForo zu Discourse migriert: Überblick über die Migration

Wir haben unsere Community (techenclave.com) erfolgreich von XenForo auf Discourse migriert.

Gesamte Beiträge: 2,5 Millionen
Gesamte Benutzer: 79.000 (aktiv und gesperrt)
Gesamte private Nachrichten: 0,7 Millionen

Es handelt sich um eine 20 Jahre alte Community, die daher einige Migrationen von Proboards, Vbulletin, IPB, Xenforo und nun Discourse erlebt hat.

Die Migration hat 4 Tage gedauert. Zuvor gab es jedoch 4 Wochen Vorarbeit für die Migration und 4 Wochen Entwicklung benutzerdefinierter Plugins.

Vielen Dank an alle, die geholfen und uns geführt haben, wo wir feststeckten. :folded_hands:
Insgesamt war es eine äußerst erfolgreiche Migration, bei der fast keine nützlichen Daten verloren gingen.


Der Kern unserer Migration basierte auf einem erweiterten XenForo-Importskript, das eine Standardbasis erheblich verbesserte. Wir haben auch mehrere spezialisierte unterstützende Skripte verwendet, um spezifische Datentransformationen durchzuführen und die Datenintegrität nach dem Import sicherzustellen.

Wichtige Verbesserungen im Haupt-XenForo-Importskript

Leistungsoptimierung (Keyset Pagination): Die wichtigste Verbesserung ist die Einführung von Keyset Pagination (WHERE id > last_id). Diese Methode verbessert die Geschwindigkeit der Stapelverarbeitung im Vergleich zu herkömmlichen OFFSET-Abfragen drastisch, insbesondere bei großen Datensätzen, indem sie indizierte Primärschlüssel zum Abrufen der nächsten Datensatzmenge verwendet.

Robuste Checkpointing- und Wiederaufnahmefunktion: Es wurde eine fortschrittliche Checkpointing-Logik (unter Verwendung von .json-Dateien) für Benutzer, Themen, Antworten und private Nachrichten implementiert. Dies ermöglicht es dem Importprozess, nach Unterbrechungen (z. B. Serverneustarts, Skriptfehler) sicher vom letzten erfolgreich importierten Datensatz fortzufahren, was erhebliche Zeit spart.

Zweistufige Beitragsimportstrategie: Beiträge werden nun in zwei separaten Durchgängen importiert:

Zuerst Themen: Alle ursprünglichen XenForo-Threads (erste Beiträge) werden importiert, um sicherzustellen, dass übergeordnete Themen vorhanden sind, bevor Antworten importiert werden.

Danach Antworten: Nachfolgende Beiträge innerhalb von Threads werden dann importiert und korrekt mit ihren neu erstellten Discourse-Themen verknüpft. Dieser strukturierte Ansatz minimiert verwaiste Antworten und verbessert die Datenkonsistenz.

Umfassender Import von Reaktionen/Likes:
Das Skript unterscheidet nun intelligent zwischen XenForo-Reaktionen, die direkt den Kern-„Likes“ (Herzen) von Discourse zugeordnet werden, und benutzerdefinierten Reaktionen.

Es unterstützt die Masseneinfügung von Kern-Likes (in die Tabelle post_actions) und benutzerdefinierten Reaktionen (unter Verwendung des Plugins discourse-reactions), was den Prozess erheblich beschleunigt.

Enthält eine Zuordnung von XenForo-Emoji-Kurznamen zu Discourse-Entsprechungen (z. B. thumbsup zu +1, heart_eyes zu heart).

Erweiterter Import von Marktplatzdaten (benutzerdefiniertes Plugin):
Ein dedizierter Abschnitt wurde hinzugefügt, um detaillierte Marktplatzangebotsdaten (z. B. Preis, Standort, Zustand, Garantie, Zahlungsoptionen) aus der Tabelle thread_field_value von XenForo zu importieren.

Diese Daten werden in einem benutzerdefinierten TecencMarket::Listing-Modell und als benutzerdefinierte Themenfelder gespeichert, was eine reichhaltigere Anzeige und Funktionalität auf Discourse ermöglicht.

Import von Marktplatzbewertungen (benutzerdefiniertes Plugin):
Eine neue Funktion wurde eingeführt, um Benutzerfeedback/Bewertungen (Likes/Dislikes) im Zusammenhang mit Marktplatztransaktionen zu migrieren.

Konvertierung von Thread-Präfixen in Tags: Das Skript konvertiert nun automatisch die Thread-Präfixe von XenForo in Discourse-Tags. Dies ist entscheidend für die Aufrechterhaltung der Organisation und Auffindbarkeit von Inhalten und verwendet das discourse-tagging-Plugin. Es ordnet auch korrekt Präfix-IDs menschlich lesbaren Titeln unter Verwendung der phrase-Tabelle von XenForo zu.

Verbesserte Verarbeitung von Beitragsinhalten: Diese Methode wurde erheblich aktualisiert, um die Markdown-Konvertierung und die Verarbeitung von XenForos komplexem BBCode zu verbessern:

Verbesserte Zitatbehandlung: Konvertierung von XenForos [QUOTE]-Tags, einschließlich der Behandlung von zitierten Benutzern und der Verknüpfung mit spezifischen Discourse-Beiträgen/Themen, wenn möglich.

Korrigierte Medien-Einbettungen: Stellt sicher, dass alle importierten Medien (YouTube, Twitter/X) auf ihren eigenen Zeilen stehen, um die Oneboxing-/Einbettungsfunktion von Discourse zu ermöglichen, und konvertiert alte BBCode [MEDIA]-Tags in Standard-URLs.

Tabellenkonvertierung: Konvertiert XenForos [TABLE]-BBCode in Markdown-Tabellen.

Anhangsbehandlung (Inline & Angehängt): Die Logik zur Verarbeitung von Anhängen wurde überarbeitet. Sie versucht nun, [ATTACH]-Tags durch das korrekte Markdown für die hochgeladene Datei zu ersetzen. Entscheidend ist, dass alle Anhänge, die nicht explizit im Beitragsinhalt mit [ATTACH] gekennzeichnet waren, nun am Ende des Beitrags unter einer klaren Überschrift „Anhänge:“ angehängt werden, um sicherzustellen, dass keine Dateien verloren gehen.

Emoji/Smiley-Konvertierung: Erweiterte Zuordnung von XenForo-Smileys zu nativen Discourse-Emojis zur Verbesserung der visuellen Konsistenz.

Allgemeine BBCode-Bereinigung: Umfassendere Entfernung und Konvertierung verschiedener BBCode-Tags (z. B. [B], [I], [URL], [IMG], [LIST], [CODE], [COLOR], [FONT], [SIZE], [INDENT], [USER]).

Zeichenkodierung & Bereinigung: Enthält .scrub! für ungültige UTF-8-Sequenzen und CGI.unescapeHTML für die ordnungsgemäße Dekodierung von HTML-Entitäten.

Behandlung gesperrter Benutzer: Gesperrte XenForo-Benutzer werden nun als gesperrte Discourse-Benutzer importiert, ihre Konten bleiben erhalten, ihre Aktivität ist jedoch eingeschränkt. Sperrgründe werden in benutzerdefinierten Feldern gespeichert.

Import von Lesezeichen: Importiert alle Lesezeichen aus XenForo nach Discourse. Es gab ohnehin nicht viele.


Ein großer Teil der Benutzer war nach der Migration nicht glücklich. Das ist zu erwarten. Das ist nichts Neues, das man nach einer Migration hört. Dennoch werde ich später in diesem Thema eine Zusammenfassung des Feedbacks teilen. Möglicherweise gibt es einige Denkanstöße für die Zukunft von Discourse.

17 „Gefällt mir“

Danke fürs Teilen! Viele Punkte auf der Liste, die ich als Aktionspunkte für ein laufendes SMF-zu-Discourse-Migrationsprojekt identifiziert habe :slightly_smiling_face:

Ist Ihr benutzerdefinierter Importcode öffentlich verfügbar? Ich wäre besonders daran interessiert, wie Sie den zweistufigen Import gehandhabt haben, um korrekte neue Links sicherzustellen.

2 „Gefällt mir“

Sie können sich auf die Import-Skripte beziehen, die ich verwendet habe. Die Datei, die Sie sehen möchten, ist diese:
xenforo_import_enhanced.rb

7 „Gefällt mir“

Der Grund, warum wir zwei Durchgänge machen mussten, war, dass im Laufe der Zeit zwangsläufig ein altes Thema in ein neues Thema zusammengeführt wird. Aber die Beiträge werden die alte ID haben und zuerst aufgegriffen. Da bis dahin kein entsprechendes Thema importiert wurde, werden alle diese Beiträge verworfen und gehen verloren.

4 „Gefällt mir“

Vielen Dank! Ich werde es mir ansehen.

Außerdem schätze ich den zusätzlichen Kommentar zu den Gedanken dahinter. Das ist ein Problem, auf das wir glücklicherweise nicht gestoßen sind. Der Hauptgrund, warum ich über einen Zwei-Pass-Import nachgedacht habe, ist, dass die Hyperlinks in Zitaten immer noch die alte URL haben – und obwohl Permalinks auch funktionieren sollten, denke ich, es wäre schöner, die neue URL sofort für Beiträge zu verwenden.

1 „Gefällt mir“

Wow! Glückwunsch! Und danke fürs Teilen.

Das ist zu erwarten, ja. Die Art und Weise, wie Sie jetzt mit ihrem Feedback umgehen, ist entscheidend. Gehen Sie auf ihre Kommentare ein, stellen Sie sicher, dass sie sich gehört fühlen, und heben Sie die Verbesserungen und neuen Funktionen hervor (ich bin sicher, es gibt viele!). Wenn Sie Probleme mit dem Feedback haben, posten Sie es hier, und ich helfe Ihnen gerne weiter.

Schauen Sie sich den letzten Abschnitt dieses Artikels an, er gibt Ihnen einige Hinweise: How to prepare your community for a Discourse migration

9 „Gefällt mir“

Nach vier fehlgeschlagenen Versuchen mit dem Standard-Importer funktionierte Ihre Version einwandfrei.

4 „Gefällt mir“

Ich teile hier die versprochene Zusammenfassung. Ich habe Gemini 2.5 Pro verwendet, um das gesamte Feedback der letzten 3 Monate zusammenzufassen.

Ich würde sagen, die größte Sorge war ein gutes Thema. Ich wünschte, es gäbe auf Discourse einen Marktplatz für kostenpflichtige Themes, wie auf anderen Forenplattformen.


Zusammenfassung

Das Feedback zur Migration zu Discourse ist stark gespalten, aber eine Mehrheit der lautstarken Nutzer äußert erhebliche Frustration, was zu einer geringeren Beteiligung führt. Die kritischsten Probleme konzentrieren sich auf Navigation & Benutzerfreundlichkeit sowie UI & Design, insbesondere für Desktop-Nutzer, die an traditionelle Forenlayouts gewöhnt sind. Während einige Nutzer das moderne Aussehen und die technischen Verbesserungen schätzen, ist der Konsens unter den Kritikern, dass die Plattform die Form über die Funktion stellt, was eine hohe kognitive Belastung und eine weniger intuitive Erfahrung schafft.


1. Navigation & Benutzerfreundlichkeit (Höchste Priorität)

Diese Kategorie erhielt das häufigste und detaillierteste negative Feedback. Nutzer finden die neue Plattform grundsätzlich schwieriger zu bedienen, was direkt zu ihrer geringeren Beteiligung führt.

  • Wichtige Feedbackpunkte & Gewichtung:

    • Unendliches Scrollen ist unbeliebt: Der stärkste Konsenspunkt ist die Abneigung gegen unendliches Scrollen, insbesondere auf dem Desktop. Nutzer vermissen den Kontext und die Kontrolle von Seitenzahlen für die Navigation in langen Threads.
    • Generell schwierig zu navigieren: Eine beträchtliche Anzahl von Nutzern beschreibt die Plattform als verwirrend, überladen, mühsam und mit einer steilen Lernkurve, in die sie für ein Forum keine Zeit investieren möchten.
    • Schwierigkeit, letzte/ungelesene Beiträge zu finden: Ein häufiges Problem ist die Unfähigkeit, intuitiv zum letzten Beitrag zu springen oder das Lesen an einer bestimmten Stelle in einem Thread fortzusetzen, was erfordert, dass Nutzer nicht offensichtliche Workarounds lernen.
    • Schlechte Inhaltsfindung: Nutzer vermissen die alte Kategorienseite, die einen klaren, hierarchischen Überblick über die Struktur des Forums und die neuesten Aktivitäten in den Abschnitten bot. Das neue Layout wird als “Durcheinander” empfunden.
    • Fehlerhaftes Zitieren: Der Prozess des Zitierens von Text wird als schwierig und unzuverlässig beschrieben, insbesondere auf Mobilgeräten und Tablets, wo das Zitat-Popup vom nativen UI verdeckt werden kann.
  • Umsetzbare Erkenntnisse:

    • Priorisieren Sie eine “traditionelle Foren”-Erfahrung: Das Kernproblem ist die Abweichung vom erwarteten Forenmodell. Ein Theme oder Layout, das eine paginierte, strukturiertere Ansicht emuliert, insbesondere für die Kategorienseite, würde die signifikantesten Beschwerden adressieren.
    • Verbessern Sie Navigationshinweise: Machen Sie das Springen zum ersten, letzten und zuletzt ungelesenen Beitrag zu einer offensichtlichen Ein-Klick-Aktion. Die aktuelle Scrollbar-Funktionalität ist für viele nicht intuitiv. Erwägen Sie das Hinzufügen expliziter Schaltflächen oben und unten in den Threads.
    • Überdenken Sie das Standard-Zitierverhalten: Die Notwendigkeit, Text manuell zum Zitieren auszuwählen, ist ein großes Hindernis. Untersuchen Sie Plugins oder Einstellungen, die das Zitieren eines vollständigen Beitrags zur Standard-Ein-Klick-Aktion machen.

2. UI & Design (Hohe Priorität)

Nutzer haben das Gefühl, dass das aktuelle Design Platz verschwendet und die Lesbarkeit beeinträchtigt, was ihre Fähigkeit und ihren Wunsch, Inhalte zu konsumieren, direkt beeinflusst.

  • Wichtige Feedbackpunkte & Gewichtung:

    • Übermäßiger Leerraum: Dies war der am häufigsten genannte Designfehler. Nutzer auf größeren Desktop-Monitoren empfinden die schmale zentrale Spalte als Verschwendung von erheblichem Bildschirmplatz und geringere Informationsdichte.
    • Wunsch nach Anpassung: Nutzer suchen aktiv nach Möglichkeiten, ihre Erfahrung durch benutzerdefiniertes CSS, verschiedene Themes (Default über Horizon) und kleinere Schriftgrößen zu verbessern. Dies deutet auf einen starken Wunsch nach mehr Kontrolle über das Erscheinungsbild auf Benutzerebene hin.
    • Schlechte Lesbarkeit: Die Kombination aus Leerraum, Schriftgrößen und fehlender klarer Trennung zwischen Beiträgen erschwert das Scannen und Lesen von Inhalten im Vergleich zur vorherigen Software.
  • Umsetzbare Erkenntnisse:

    • Entwickeln Sie ein “Kompakt”- oder “Vollbild”-Theme: Adressieren Sie die Beschwerde über den Leerraum direkt, indem Sie ein offizielles Theme anbieten, das mehr von der Bildschirmbreite nutzt. Dies würde auch den Wunsch nach Anpassung erfüllen und ist der häufigste Workaround, den Nutzer selbst implementieren.
    • Verfeinern Sie visuelle Trennelemente: Erhöhen Sie die visuelle Unterscheidung zwischen Beiträgen. Subtile Änderungen wie Rahmen, abwechselnde Hintergrundfarben oder unterschiedliche Layouts für Benutzerinformationsblöcke können die Lesbarkeit erheblich verbessern und das “Chat-ähnliche” Gefühl reduzieren.
    • Überprüfen Sie Schriftgrößen und Hierarchie: Führen Sie eine Überprüfung der Typografie des Themes durch, um eine konsistentere und informationsdichtere Hierarchie zu gewährleisten, insbesondere für Unterkategorietexte und Beitragsinhalte.

3. Allgemeine Stimmung & Nutzerbeteiligung (Hoher Einfluss)

Ein erheblicher Teil des Feedbacks deutet auf eine direkte, negative Auswirkung auf die Nutzeraktivität hin. Obwohl dies teilweise Widerstand gegen Veränderungen ist, deuten die Konsistenz der Beschwerden auf tiefere Probleme hin.

  • Wichtige Feedbackpunkte & Gewichtung:

    • Negative Stimmung / Nutzung gesunken: Dies ist eine kritische Metrik. Mehrere Nutzer geben ausdrücklich an, dass sie das Forum jetzt seltener besuchen.
    • Positive Stimmung: Eine kleinere, aber bemerkenswerte Gruppe genießt das moderne Gefühl, die Geschwindigkeit und Funktionen wie das Benachrichtigungssystem und den Markdown-Editor.
    • Adaptive Nutzer: Diese Gruppe vermisst das alte Forum, versteht aber die technischen Gründe für die Migration und ist bereit, sich anzupassen.
  • Umsetzbare Erkenntnisse:

    • Anerkennen und kommunizieren: Erkennen Sie das Nutzerfeedback öffentlich an und kommunizieren Sie eine klare Roadmap für UI/UX-Verbesserungen. Dies kann frustrierte, aber anpassungsbereite Nutzer binden.
    • Priorisieren Sie “Quality of Life”-Korrekturen: Konzentrieren Sie sich zuerst auf Änderungen mit geringem Aufwand und hoher Wirkung (z. B. das Ändern von Kategoriefarben, um dem alten Theme zu entsprechen, wie von einem Nutzer vorgeschlagen), um zu zeigen, dass Feedback gehört und umgesetzt wird.
    • Erstellen Sie eine “Erste Schritte”-Anleitung: Obwohl sich einige Nutzer weigern, Anleitungen zu lesen, könnte ein angehefteter Beitrag, der die 5 verwirrendsten Änderungen (wie die Navigation in Threads und das Zitieren) schnell erklärt, den Übergang für viele erleichtern.

4. Kernfunktionalität & Leistung (Mittlere Priorität)

Obwohl diese Probleme nicht so häufig wie UI/UX erwähnt werden, beeinträchtigen sie den Kernzweck des Forums.

  • Wichtige Feedbackpunkte & Gewichtung:

    • Chat-ähnliches Gefühl: Das Design fördert kurze, reaktive Antworten anstelle von langen, strukturierten Diskussionen, wodurch es sich eher wie eine Chat-App als ein Forum anfühlt.
    • Schlechte Suche: Nutzer berichten, dass die Suche Ergebnisse aus Themenüberschriften nicht effektiv priorisiert, was es schwierig macht, bekannte Threads zu finden.
    • Leistungsprobleme: Ein Nutzer bemerkte, dass der Texteditor träge wird und sein Laptop bei langen Threads überhitzt.
  • Umsetzbare Erkenntnisse:

    • Abstimmung der Suchrelevanz: Untersuchen Sie Discourse-Einstellungen oder Plugins, die Themenüberschriften in Suchergebnissen stärker gewichten können. Der Vorschlag des Administrators, die erweiterte Syntax zu verwenden, ist ein Workaround, keine Lösung für das Standard-Suchverhalten.
    • Leistung bei langen Threads überwachen: Behalten Sie die Leistung des Editors und des Scrollens bei Threads mit Tausenden von Antworten im Auge, um potenzielle clientseitige Engpässe zu beheben.
    • KI-Suche aktivieren: Wie vom Administrator vorgeschlagen, könnte die Aktivierung der KI-gestützten Suche eine langfristige Lösung für das Problem der Suchrelevanz sein, dies sollte jedoch gegen potenzielle Kosten abgewogen werden.
3 „Gefällt mir“

Warum nicht Marketplace? Obwohl das Ergebnis normalerweise privat ist.

Für diese Benutzer sollten Sie vielleicht in Erwägung ziehen, die Übersicht Kategorien explizit hervorzuheben. Oder sogar in Erwägung ziehen, diese Übersicht in etwas zu ändern, das ihnen besser gefällt. Es ist eine Gelegenheit, sie auch einzubeziehen.
Teilen Sie einige Screenshots davon, wie die verschiedenen Einstellungen von Desktop category page style aussehen würden, und fragen Sie nach ihrer bevorzugten Einstellung?

Dies ist ein Feedback, das wir explizit erhalten möchten. Könnten Sie sie bitten, dies hier im Meta zu melden?

Dies kann mit Benutzerthemen behoben werden :slight_smile: Erwägen Sie, diese Themenkomponente zu einem vom Benutzer wählbaren Thema hinzuzufügen: GitHub - discourse/discourse-full-width-component: Make Discourse occupy the full browser width

Ich verstehe “klare Trennung von Beiträgen” nicht?

Veränderungen sind immer schwierig, die Leute werden sich immer beschweren. Wenn die “negative” Gruppe klein genug ist, können Sie sie meiner Meinung nach vorerst getrost ignorieren und sich auf die Anpassungsfähigen konzentrieren. Machen Sie ihre Erfahrung großartig, und die negativen Leute werden sich anpassen (oder gehen).

2 „Gefällt mir“

Mit einem Themen-Marktplatz werden die Kosten auf mehrere Käufer aufgeteilt. Der Thema-Ersteller hat auch einen Anreiz, viele Themen zu erstellen.

1 „Gefällt mir“

Die Komponente bietet nicht wirklich volle Breite. Sie drängt das Layout nach links, aber erweitert es nicht. Ich habe eine benutzerdefinierte Theme implementiert, die sich erweitert, aber ich wünschte, es wäre für alle Themes möglich.

Mit Full-Width-Komponente auf Horizon

Mit dem benutzerdefinierten Theme basierend auf Foundation

Sie haben jedoch Recht, Veränderungen sind schwierig und viele Benutzer haben sich angepasst, einige finden es immer noch schwierig. Es ist schwierig, alle zufriedenzustellen. Ich dachte, ich teile die ganze Erfahrung.

Ich werde mehr Details zum Zitatproblem auf Mobilgeräten/Tablets mitteilen.

2 „Gefällt mir“