Ein XenForo-Forum zu Discourse migrieren

Ich habe es gerade noch geschafft, meine bestehende XenForo-Community in Discourse zu überführen, daher dachte ich, ich teile meine Erfahrungen hier, um jedem zu helfen, der dasselbe versucht. Bedenken Sie, dass ich nicht weiß, was ich tue, daher können einige meiner Schlussfolgerungen falsch sein. Ich konnte den Import nach Discourse mit einem Verlust von etwa 20 % an Anhängen abschließen. Ich kann nicht wirklich erklären, warum, aber das Problem scheint nur die letzten 2-3 Jahre an Beiträgen in meinem Forum zu betreffen, während alles davor eine Erfolgsquote von etwa 95 % beim Import hatte. Meine einzige Vermutung ist, dass es etwas mit dem Wechsel von XF 1.x zu XF 2.x zu tun hat.

Jeder, der dies versucht, sollte wissen, dass dieses Skript viel Aktualisierung benötigt, um mit XF 2.x zu funktionieren. Insbesondere die Zeilen 375-378 enthalten nicht die richtigen Datenbanktabellen für den Import von Anhängen aus der XenForo Media Gallery. Ich habe dies umgangen, indem ich die XFMG vom Forum getrennt und deinstalliert habe, da ich die XFMG nur dazu verwendet habe, Anhänge vom Forum zu spiegeln.

Wenn Sie neugierig sind, bezieht sich Zeile 376 auf die Tabelle xengallery_media, was offensichtlich eine Referenz auf XFMG 1.x ist, da diese Tabelle in XFMG 2.x in xf_mg_media_item geändert wurde. Den Rest kann ich nicht zuordnen und ich vermute, dass zusätzlicher Code benötigt wird, um die IDs von Anhängen mit Beiträgen abzugleichen.

Ich habe Zeile 314 auskommentiert: s = process_xf_attachments(:gallery, s)

Damit das Skript wegen der fehlenden SQL-Tabelle nicht abstürzt.

Danach habe ich Jack51’s Beitrag in diesem Thread befolgt:

mit den folgenden Änderungen:

Schritt sechs benötigt die Aktualisierung der Mariadb-Version. Ändern Sie mariadb-server-10.3 in mariadb-server-10.5.

Schritt sieben sollte service mariadb start anstelle von service mysql start sein.

Ich habe geändert

frozen_string_literal: true

in

frozen_string_literal: false

Da ich die gleiche Fehlermeldung erhalten habe, die jemand anderes in diesem Thread erwähnt hat.

Es scheint, dass es in diesem Thread viel Verwirrung darüber gab, wo die Anhänge platziert werden sollen, damit das Skript sie sieht, und ich muss zugeben, dass ich auch damit einige Schwierigkeiten hatte. Für Leute, die Docker (wie ich) völlig neu sind, wäre es äußerst hilfreich darauf hinzuweisen, dass Docker im Wesentlichen eine virtuelle Maschine ist, die auf Ihrem Server läuft (sodass Sie mit zwei verschiedenen Betriebssystemen/Dateisystemen zu tun haben), es aber einen gemeinsamen Bereich für die Übertragung von Dateien gibt:

/var/discourse/shared/standalone/tmp

Dieses Verzeichnis befindet sich auf Ihrem Host-Computer, und dort abgelegte Dateien erscheinen in:

/shared/tmp

wenn Sie den Docker-Container betreten haben. Wenn Sie also die gleiche Datei-/Ordnerstruktur von XenForo beibehalten, würden Sie die Ordner kopieren:

internal_data/attachments

nach

/var/discourse/shared/standalone/tmp

auf Ihrem Host-Computer, und dieser Ordner würde nach dem Betreten Ihres Docker-Containers unter /shared/tmp erscheinen.

Als Nächstes ändern Sie beim Bearbeiten des xenforo.rb-Skripts:

ATTACHMENT_DIR = '/tmp/attachments'

in

ATTACHMENT_DIR = '/shared/tmp/internal_data/attachments'

und Ihre Anhänge werden am richtigen Ort gefunden. Es ist erwähnenswert, dass XenForo auch einen Ordner data/attachments hat, aber dieser ist mit .jpg-Dateien gefüllt anstelle der .data-Dateien, nach denen Sie suchen. Ich habe gesehen, dass jemand diesen Fehler zuvor in diesem Thread gemacht hat, daher dachte ich, es wäre erwähnenswert.

Außerdem habe ich eine Berechtigungsfehlermeldung vom Skript erhalten, daher müssen Sie möglicherweise das Verzeichnis chmodden:

sudo chmod a+rw -R /shared/tmp/internal_data/

Ich würde sagen, das größte Anzeichen dafür, dass das Skript Ihre Anhänge nicht erkennt, ist, dass es seltsam ruhig ist, obwohl es wahrscheinlich gelegentliche Fehler ausgeben sollte:

Wenn der Import also mehrere Stunden dauert, ohne dass ein einziger Fehler aufgeführt wird, erkennt er wahrscheinlich die Anhänge nicht.

Das ist alles, was ich habe. Verstehen Sie mich nicht falsch, ich bin froh, dass dieses Skript überhaupt existiert, eine Erfolgsquote von 80 % ist besser als nichts (ich hatte eine ähnliche Erfolgsquote beim Wechsel von vBulletin zu XenForo im Jahr 2009), und ich freue mich darauf, mit der Discourse-Plattform zu arbeiten. Hoffentlich hilft dieser Beitrag einigen Leuten und vielleicht kann eines Tages jemand mit besseren Fähigkeiten als ich dieses Skript aktualisieren, damit es etwas besser funktioniert.

4 „Gefällt mir“