Massenlöschung alter und verstreuter Themen

Hallo,

wir haben tausende alte/veraltete Themen in unserem Forum, die wir löschen möchten. Ich habe bereits im Meta-Bereich nach einer geeigneten Methode gesucht, konnte aber keine passende Lösung finden.

Wäre es ausreichend, eine Liste von Topic-IDs zu durchlaufen und für jedes zu löschende Thema das Attribut deleted_at zu setzen, oder gibt es einen besseren Weg? Ich weiß, dass dies eine eher faule Lösung ist.

Ich denke, es wäre etwas Overhead, ein extra (kleines) Plugin zu schreiben, um Topic.destroy für eine Massenlöschung zu nutzen.

Viele Grüße
Sascha

P.S.
Kontext: Diese Themen verursachen Crawl-Probleme und Soft-404-Fehler, und wir möchten sie für Suchmaschinen unsichtbar machen. Gelöschte Themen werden aus unserer Sitemap ausgeschlossen.

Vielleicht möchten Sie sie einfach nur nicht auflisten? Das sollte verhindern, dass sie indexiert werden.

Möchten Sie das einmalig oder regelmäßig tun?

Hallo,

ja, wir möchten sie aus der Liste entfernen und verhindern, dass sie indexiert werden.
Dies wird einmalig durchgeführt, da wir alle kommenden „fehlerhaften

Wenn du sie löschen möchtest, solltest du meiner Meinung nach topic.delete aufrufen. Falls es Abhängigkeiten gibt, werden diese damit ebenfalls behandelt.

Vielen Dank für deinen Rat! Falls wir uns dafür entscheiden, diese Themen komplett zu löschen, werde ich deleted_at und visible=false über eine SQL-Abfrage setzen. Diese Themen werden nach 30 Tagen von einem Sidekiq-Job gelöscht.

Wenn diese Themen jedoch behalten werden sollen, werde ich das tun, was du vorgeschlagen hast, und sie über ein kleines Ruby-Skript mit topic.delete „löschen".

In beiden Fällen werden diese Themen am Ende von Discourse selbst verarbeitet, was sich um mögliche Abhängigkeiten kümmern sollte.

Vielen Dank!