phpBB3 Forum auf Discourse migrieren

Ich kann zumindest sagen, dass dies nicht nur in Fällen auftritt, in denen ältere Beiträge auf neuere verlinken.

Ich habe ein Beispiel gefunden, bei dem ich das Problem erstmals entdeckt habe.

Original-Beitrags-ID: 842948 verlinkt auf Seite 22 eines Threads, der bereits existierte, und mindestens der Eröffnungsbeitrag (&start=220) hat eine ID (842880), die niedriger ist als die ID des verlinkenden Beitrags.

Nach dem Import verweist dieser ursprüngliche Beitrag (der nur wenige Tage vor der Erstellung des Dump-Datei veröffentlicht wurde) auf einen 7 Jahre alten Thread, bei dem der erste Beitrag eine Original-ID von 1353 hat.

Ich kann keine Hinweise darauf finden, warum dies passiert, keine Ähnlichkeiten in den Zahlen in irgendeiner Weise… Der ursprüngliche Link war einfach eine normale URL, die von phpBB automatisch verlinkt wurde. Solche Links verursachen im Allgemeinen keine Probleme – sie funktionieren an mehreren anderen Stellen einwandfrei.

Im Allgemeinen erwarte ich nicht, dass der Import sofort reibungslos verläuft. Ich bin wirklich erfreut über den bisherigen Verlauf, aber ich gehe davon aus, dass dieses Problem eines der schwierigsten zu beheben sein könnte, insbesondere weil ich noch keine Ahnung habe, wie man eine Entwicklungs-/Debug-Umgebung mit Discourse einrichtet. Das werde ich wahrscheinlich bald genauer untersuchen müssen.

3 „Gefällt mir“

Hallo,

Soweit ich mich erinnere, hat der phpBB-Importeur standardmäßig den vollständigen Benutzernamen in Discourse durch eine Schätzung basierend auf der E-Mail-Adresse des Benutzers ausgefüllt. Stimmt das und ist das immer noch der Fall? Ich kann dazu nichts in den Importeur-Dateien finden…

Das ist etwas, das ich beim nächsten Forum, das ich möglicherweise importiere, nicht möchte.

Außerdem noch eine weitere Frage.

Auf dem aktuellen phpBB-Forum gibt es benutzerdefinierte Benutzerfelder (wie z. B. Facebook- oder Instagram-URLs der Benutzer). Ich möchte diese in benutzerdefinierte Discourse-Felder importieren. Ich vermute, ich werde zuerst Discourse installieren und konfigurieren, indem ich diese benutzerdefinierten Benutzerfelder hinzufüge, und dann die phpBB-Daten über mein benutzerdefiniertes Import-Skript importieren?

1 „Gefällt mir“

Das passiert nicht mehr.

Das klingt nach einem guten Plan.

6 „Gefällt mir“

Gibt es eine zuverlässige Methode, um das monatliche E-Mail-Volumen abzuschätzen, das Discourse nach einer Migration von phpBB an Benutzer senden wird? Neue Registrierungen, Erwähnungen und Antworten, wöchentliche Zusammenfassungen und so weiter… phpBB sendet standardmäßig sehr wenige E-Mails, und ich denke, wir werden den aktuellen E-Mail-Anbieter wechseln müssen.
Ich habe derzeit kaum Statistiken von der eigentlichen phpBB-Instanz. Sie existiert seit 2013, mit 200.000 Nachrichten und 5.500 Mitgliedern. Täglich registrieren sich neue Mitglieder.

1 „Gefällt mir“

Wie viele Beiträge pro Tag?

1 „Gefällt mir“

Ich weiß es noch nicht. Ich habe derzeit nur die öffentlichen Statistiken. Vielleicht 20.

1 „Gefällt mir“

Bei nur 20 Beiträgen pro Tag würdest du wahrscheinlich maximal 3000 E-Mails pro Monat erhalten, was gut innerhalb des kostenlosen Mailgun-Plans liegt.

Da du jedoch mit vielen Nutzern migrierst, empfehle ich dir, die Digest-E-Mails für alle zu deaktivieren, die deinen Forum in den letzten ein oder zwei Monaten nicht besucht haben (sie können es jederzeit selbst wieder aktivieren, falls gewünscht). Das lässt sich mit einer Abfrage in der Rails-Konsole erledigen, aber da ich das vor einem Jahr für mein eigenes Forum gemacht habe, erinnere ich mich leider nicht mehr an den genauen Code.

Das sollte meiner Meinung nach eigentlich schon das Import-Skript übernehmen können, idealerweise mit einer Einstellung für die Zeit seit dem letzten Besuch, um Digest-E-Mails zu aktivieren.

4 „Gefällt mir“

Ich bin anderer Meinung. Das sollte ein Import-Skript nicht tun, aber es gibt eine Website-Einstellung dafür: suppress digest email after days

4 „Gefällt mir“

Tatsächlich :slight_smile: Nach meinem ersten phpBB-Import auf meinem aktuellen Forum musste ich den Standardwert herabsetzen; mein E-Mail-Anbieter hat die verwendete Adresse aufgrund aller gesendeten Zusammenfassungs-E-Mails automatisch blockiert. Sie wurde als Spam markiert.

1 „Gefällt mir“

Das ist nicht ganz dasselbe. Meiner Meinung nach besteht ein Unterschied zwischen dem Versenden von Digest-E-Mails an jemanden über X Monate seit dem letzten Besuch, nachdem diese Person dafür angemeldet wurde – nur weil sie das Forum nicht besucht, heißt das nicht, dass sie die Digest-E-Mails nicht liest – und dem Versenden von Digest-E-Mails an einen Nutzer, der sich nie dafür angemeldet hat, weil er im vorherigen Forum registriert war, was in einigen Rechtsgebieten möglicherweise nicht einmal legal ist! Sie könnten einfach die Digests für alle migrierten Nutzer deaktivieren, und diese können sie dann selbst wieder aktivieren, oder Sie können es so machen wie ich: sie für alle deaktivieren, außer für diejenigen, die innerhalb des letzten Monats aktiv waren und die daher die Ankündigung „Wir werden das Forum bald migrieren

5 „Gefällt mir“

Ich bin mir nicht sicher, ob das hierher oder in ein separates Thema gehört. Da es jedoch um die Migration von phpBB 3 geht, melde ich mich hier.

Ich habe erfolgreich auf Discourse mit einer einzigen Datenbank migriert. Allerdings habe ich drei verschiedene, getrennte Communities (drei verschiedene Sprachen, drei verschiedene phpBB-Installationen), die ich idealerweise alle in ein einziges großes, glückliches Discourse-Forum zusammenführen möchte.

Meine Frage lautet: Wie gehe ich dabei vor? Was muss ich im Import-Skript, in der phpBB 3-Datenbank oder sonst wo ändern?
Es gibt einige Benutzer, die Konten in beiden Foren haben (einige vielleicht sogar in allen drei), aber es gibt kein Single Sign-On, sodass sie auf jedem Forum ein separates Konto mit demselben Benutzernamen haben. Es handelt sich um verschiedene Installationen und verschiedene Datenbanken.

Es wäre großartig, wenn dies machbar wäre!

Vielen Dank im Voraus für jede Hilfe!

1 „Gefällt mir“

Es funktioniert nicht sofort, da das Import-Skript die ursprünglichen IDs in der Discourse-Datenbank speichert und keine Daten aus einem zusätzlichen Forum importiert, wenn ein Datensatz mit derselben ID gefunden wird. Ich kann mir jedoch zwei Lösungsansätze vorstellen:

  1. Aufwendig: Sie müssen das Import-Skript an verschiedenen Stellen bearbeiten und für jedes Forum ein Präfix zu den benutzerdefinierten Feldern import_id hinzufügen, die für Beiträge, Themen, Kategorien und Benutzer gespeichert werden.

  2. Einfach, aber Sie verlieren die Möglichkeit inkrementeller Importe: Löschen Sie die benutzerdefinierten Felder nach jedem Import.

    TopicCustomField.where(name: 'import_id').delete_all
    PostCustomField.where(name: 'import_id').delete_all
    CategoryCustomField.where(name: 'import_id').delete_all
    UserCustomField.where(name: 'import_id').delete_all
    

Lösung 2 wurde nicht getestet, sollte aber theoretisch funktionieren. Erstellen Sie ein Backup, bevor Sie es ausprobieren.

7 „Gefällt mir“

Nach den ersten Tests vor Neujahr widmen wir uns nun wieder unserem Migrationsprojekt. Eine der größten Herausforderungen ist weiterhin das fehlerhafte Umschreiben von Links, und ich überlege, wie man das am besten handhabt.

@gerhard Meine Programmierkenntnisse sind sehr grundlegend, und ich habe keinerlei Erfahrung mit Rails im Allgemeinen oder der Discourse-Struktur im Detail. Bitte hab also etwas Geduld mit mir bei dieser Frage: Gibt es eine Möglichkeit, den Fall zu behandeln, in dem der Importeur keinen importierten Beitrag mit der angegebenen ID aus dem Link findet? Vielleicht könnte man statt eines falschen Links einen Text anhängen, der den Benutzer oder Administrator informiert und diese problematischen Links nach dem Import auffindbar macht?

Meine Hauptsorge bei der aktuellen Funktionsweise ist, dass diese Links so aussehen, als wären sie erfolgreich ersetzt worden, und es keine Möglichkeit gibt, sie nach dem Import zu finden und manuell zu korrigieren.

Vielen Dank für jede Hilfe, die du mir geben kannst – das wird wirklich geschätzt.

1 „Gefällt mir“

Eine Möglichkeit besteht darin, das Skript so umzuschreiben, dass es diese Links erst nach dem Import aller Beiträge ersetzt. Wenn Sie Hilfe benötigen und ein Budget haben, können Sie mich kontaktieren oder im #marketplace-Beitrag posten.

4 „Gefällt mir“

Leider ist dieses Projekt mit einem sehr kleinen Budget ausgestattet, und ich vermute, dass das Problem nicht wichtig genug ist, um Geld dafür auszugeben. Es ist jedoch definitiv gut zu wissen, dass du dafür zur Verfügung stehst.

Eine weitere Frage: Mir ist aufgefallen, dass BBCode beim Importieren unterschiedlich behandelt wird. [size] wird beispielsweise einfach als Text belassen, während [color] komplett entfernt zu werden scheint. Ich wollte die Farbfunktion wiederverwenden und habe festgestellt, dass es dafür ein Discourse-Plugin gibt. Allerdings scheint es beim Import entfernt zu werden. Im ersten Beitrag heißt es, dass BBCode importiert werden kann, aber ich konnte keine Einstellung finden, die steuert, welche BBCode-Tags importiert werden und welche nicht.

Wenn es eine Möglichkeit gibt, würde ich es bevorzugen, die [size]-Tags zu entfernen und stattdessen [color] beizubehalten. Gibt es etwas, das ich bei der Handhabung übersehen habe, und wie könnte man das eventuell ändern?

1 „Gefällt mir“

Ich habe gerade festgestellt, dass Themen, die in meinem phpBB-Forum bereinigt wurden und die ich für gelöscht hielt, somehow auf Discourse übertragen wurden.

Wie ist das möglich?

1 „Gefällt mir“

Ich versuche das umzusetzen, bin aber bei den Anweisungen verloren. Welche Konfigurationsdatei meinst du hier? Und wann muss ich das tun – vor oder nach dem Import?
Vielen Dank im Voraus!

Edit: Ich glaube, du meinst die Emoji-Einstellungen im Admin-CP? Gibt es eine Möglichkeit, das beim Import einer Textdatei oder ähnlichem zu erledigen? Ich habe etwa 100 benutzerdefinierte Smilies und würde es vorziehen, diese Zuordnung irgendwie in Discourse zu kopieren. Ist das möglich? (Könnte ich die smilies.pak-Datei von phpBB irgendwie in die Discourse-Einstellungen kopieren?)

1 „Gefällt mir“

Du hast doch die Einstellungsdatei des Importers gesehen, oder? :wink:

3 „Gefällt mir“

Ich vermute, phpBB behandelt entfernte Themen anders als regulär gelöschte Themen. In diesem Fall wird dies derzeit nicht unterstützt. Sie müssen herausfinden, wie phpBB entfernte Themen als gelöscht markiert, und das Import-Skript entsprechend anpassen.

3 „Gefällt mir“

Riiiiiiiiiight, ja, natürlich! Es ist schon eine Ewigkeit her, seit ich die erste Umrechnung gemacht habe. Das hatte ich völlig vergessen, danke!

Zu den gekürzten Themen: Ja, ich dachte mir schon, dass es so ähnlich ist. Für mein Forum ist das kein großes Problem, aber es war überraschend und vielleicht eine gute Vorwarnung für andere, dass so etwas vorkommen kann.

1 „Gefällt mir“