Massenimport von Weiterleitungen in neue Discourse-Themen

Hallo zusammen,

ich habe kürzlich erfolgreich meine Website von einer alten benutzerdefinierten Plattform auf Discourse migriert. Nun stehe ich jedoch vor der Herausforderung, Permalinks/Weiterleitungen in die neuen Discourse-Themen zu importieren. Ich habe die IDs aller in Discourse erstellten Beiträge und prüfe derzeit Optionen, diese Weiterleitungen über die API oder Kommandozeilen zu importieren, da ein manueller Import aufgrund der großen Menge nicht praktikabel ist.

Könnte mir jemand Ratschläge geben, ob es Methoden oder Werkzeuge gibt, um Weiterleitungslinks effizient in die neuen Discourse-Themen zu importieren? Ihre Erkenntnisse und Vorschläge wären sehr willkommen.

Vielen Dank im Voraus!

Wenn Ihre Migration auf einem Import-Skript basierte, dann enthalten Themen (und wahrscheinlich auch Beiträge) ein benutzerdefiniertes Feld import_id. Sie können dann diese benutzerdefinierten Felder, Permalinks und SiteSetting.permalink_normalizations verwenden, um Weiterleitungen zu erstellen.

Sie können in Rails mit etwas wie dem Folgenden testen:

tcfs=TopicCustomField.where(name: 'import_id')
pcfs=PostCustomField.where(name: 'import_id')

Wenn Sie diese nicht haben, wird es wirklich schwierig.

Wenn Sie diese haben, können Sie etwas wie das Folgende tun:

tcfs.each do |tcf|
  Permalink.create(url: "imported-topic/#{tcf.value}", topic_id: tcf.topic_id)
end

Und dann eine PermalinkNormalization erstellen, die den Pfad für Themen zu /imported-topic/IMPORTED_ID weiterleitet.

Sie können die import_scripts durchsuchen (grep), um einige andere Import-Skripte zu finden, die Permalinks und die Permalink-Normalisierung festlegen.

1 „Gefällt mir“

Vielen Dank für Ihre Antwort, Jay. Anstatt das Importskript für die Migration zu verwenden, habe ich mich aufgrund der benutzerdefinierten Struktur für eine API-Integration entschieden. Ich habe ein Python-Skript entwickelt, um Beiträge über die API zu importieren, und ich habe erfolgreich neue Topic-IDs für jedes Thema abgerufen. Trotz des Imports alter URLs mit neuen Topic-IDs/URLs für ungefähr 6.000 Seiten funktionieren keine der Zuordnungen wie erwartet. Könnten Sie mir bitte raten, was ich möglicherweise übersehe und wie ich dieses Problem beheben kann? Ihre Anleitung wäre sehr willkommen.