Gelöschte Beiträge dauerhaft in großen Mengen löschen?

Ausgezeichnet, ich freue mich zu hören, dass das für Sie funktioniert hat. Um die Antworten zu kombinieren, können Sie Folgendes in der Rails-Konsole verwenden, um alle Themen zu löschen, die vor mehr als 90 Tagen gelöscht wurden. Wiederholen Sie dies so oft wie nötig, wenn mehr als 1000 Themen vorhanden sind:

Topic.with_deleted.where(deleted_at: ...90.days.ago).limit(1000).destroy_all

Nachdem dies abgeschlossen ist, können Sie Folgendes verwenden, um alle Beiträge zu löschen, die von gelöschten Themen verwaist sind:

Post.find_by_sql("select * from posts where topic_id not in (select id from topics)").each { |p| p.destroy }

Es ist erwähnenswert, dass die obigen Befehle keine gelöschten Beiträge zerstören, sondern nur gelöschte Themen und deren verwaiste Beiträge. Um auch gelöschte Beiträge zu zerstören, die älter als 90 Tage sind, verwenden Sie Folgendes, wiederholen Sie dies bei Bedarf:

Post.with_deleted.where(deleted_at: ...90.days.ago).limit(1000).destroy_all

PS Aus Interesse, haben Sie destroy_all ohne limit(1000) versucht und Probleme gehabt oder haben Sie es nicht ohne das Limit versucht?

8 „Gefällt mir“