Hallo, ich und meine Gruppe von verrückten Idioten sind kurz davor, unser Vbulletin3-Forum endlich nach Discourse zu migrieren, nachdem wir ein Ad-hoc-Skript geschrieben haben, das endlich alle 21 Millionen Antworten aus der ursprünglichen Datenbank nach Discourse migriert.
Jetzt haben wir das Problem mit Links zu den Themen/Antworten, die in den Antworten selbst geschrieben sind.
Bei der Migration, die wir geschrieben haben, erstellen wir eine Zuordnung der „alten“ Themen- und Beitrags-IDs zu dem, was sie in Discourse abbilden.
Zum Beispiel:
id | topic_id | name | value | created_at | updated_at
--------+----------+-----------+--------+----------------------------+----------------------------
581727 | 581736 | import_id | 599137 | 2023-02-08 16:30:01.600759 | 2023-02-08 16:30:01.600759
Was ich mir jetzt überlegt habe, ist ein Plugin, das einfach Links zum alten Forenformat abfängt und sie mit Verweisen auf den neuen Thread/die neue Antwort umwandelt.
Also zum Beispiel etwas wie:
https://oldforum.something.com/showthread.php?t=123456
würde eine Abfrage auslösen, die das topics_custom_field nach dem Wert 123456 durchsucht, die Discourse topic_id findet, dann die Tabelle topic_links mit dieser ID abfragt und die url findet. Schließlich wird sie auf der Clientseite ersetzt (unter der Annahme von JS zur Manipulation des Inhalts).
Etwas Ähnliches für Beiträge.
Ich kann jedoch kein gutes Beispiel dafür finden, wie man so etwas für Discourse überhaupt erstellt.
Kann mir jemand Hinweise, Beispiele oder Plugins geben, die etwas Ähnliches tun (Antworten auf einen Teilstring prüfen und ihn ersetzen, die API? DB? nach einem Wert abfragen, um einen anderen abzurufen?).
Vielen Dank