Ist es möglich, Beiträge aus der Datenbank zu löschen?

Ich entschuldige mich im Voraus, falls die Frage zu dumm ist.
Ich habe Zugriff auf die Discourse-Datenbank (über das Plugin).
Kann ich einige der Beiträge löschen (die ich selbst in großen Mengen während des Tests erstellt habe), indem ich die Abfrage verwende?

delete from posts where id in (123, 567, ... etc)

Ist es sicher, solche Operationen durchzuführen?

Wenn Sie über das Data Explorer-Plugin auf die Datenbank zugreifen, erlaubt dieses Plugin nur schreibgeschützte Abfragen. Es ist nicht möglich, damit in die Datenbank zu schreiben.

Es ist zwar möglich, Beiträge vollständig über die Rails-Konsole zu löschen, aber wir empfehlen dies nicht. Der beste Ansatz wäre, das Data Explorer-Plugin zu verwenden, um die zu löschenden Beiträge zu finden, und dann die im Discourse-Benutzeroberfläche verfügbaren Tools zu nutzen, um die Beiträge zu entfernen.

Sollte dieser Ansatz aus irgendeinem Grund nicht für Sie funktionieren, teilen Sie es uns bitte mit, und wir geben Ihnen Details zur Löschung von Beiträgen über die Rails-Konsole.

Ich bin kein Experte für diese Engine, aber ich vermute, dass das nicht sicher ist, denn auf diese Weise löschen Sie nur den Eintrag aus der Tabelle posts. Ein Beitrag kann jedoch verknüpfte Einträge in anderen Tabellen haben sowie eine Menge Metainformationen, die mit dieser post_id verknüpft sind. Später könnte etwas kaputtgehen. Daher sollten Sie integrierte Tools zum Löschen von Beiträgen verwenden.

Danke, Nikolay. Ich denke auch so … aber plötzlich werden echte Experten für diese Anwendung auftauchen und sagen: „Fühlen Sie sich frei, es zu löschen!

Außer dass keine Experten sagen, dass es in Ordnung ist:

  • Es wird nicht empfohlen.
  • Es steht nicht auf der Discourse-Roadmap und es gibt keine Pläne, es hinzuzufügen.
  • Es wird nicht entwickelt, weil eine endgültige Löschung nicht rückgängig gemacht werden kann.
  • Niemand hat bezahlt, um diese Funktion entwickeln zu lassen.

Niemand, der danach gefragt hat, hat diese Funktion entwickelt, da sie entweder zu schwierig ist oder die Entwicklungskosten den Nutzen nicht rechtfertigen.

Siehe diesen Thread für Beispiele zu diesen Punkten:

Ich würde mich nicht als Experte bezeichnen, aber ich habe im Laufe der Jahre einige Dateien und Codeabschnitte betrachtet, analysiert und ausprobiert.

Ich habe genug gesehen, um mir selbst klar zu machen, dass ich allein nicht über das nötige Wissen verfüge, um mehr als nur Experimente in einer lokalen Umgebung durchzuführen. Was ich gesehen habe – und was ich nicht gesehen habe – lässt mich innehalten.

Ich habe niemals ein einziges „ON DELETE CASCADE

Außerdem,

Das wäre im Fall des OP jedoch sinnlos.