Delete deleted-posts permanently in bulk?

Dear Team,

Please help me out to resolve this!

We have too many deleted-posts and we need to delete that permanently but in bulk!

A deleted topic is exactly what it is, a deleted topic. No further action is required and only admins can view such topics. You directly delete an already deleted topic.

i dont want in deleted topics list i want to clear them from DB.

so if any command or any way to delete those??


It’s not something I’ve done, but is this topic helpful:

1 Like

Not Useful :frowning: please help me if anything found?

maybe this can help you

1 Like


not showing deleted-posts category ??

Do you have a category with the slug deleted-posts? The posts in your screenshot look like they are probably in categories that have different slugs.



If I delete Category wise then all POSTS will delete which not in deleted-posts!

so can you help me to delete deleted-posts from DB.

I’m trying to find a way to do this too. After much searching here on Meta, and a lot of trial and failure, I am now quite confused about it all.

Can we indeed permanently purge deleted posts from the database? How?

1 Like

if you can delete a category, then you can delete deleted posts.

rebuilding my test app now to install data explorer


I’m not sure how to do it. I was just mentioning that the command you typed appears to be looking for a category with the slug deleted-posts.

When you delete a category using the Rake task, all the posts (not just topics) within it are deleted. However, they are only soft deleted.

I remain unsure of how to actually remove posts from the database. I also remain unsure of how to get rid of the uploads associated with my deleted posts. Both are causing quite a headache at the mo.

1 Like

I think the attachments will be cleaned up by one of the daily jobs, as long as they’re not part of the latest version of the post. So changing the deleted post to ‘(deleted by admin)’ or something would make its attachment part of the edit history and would then orphan it (thus scooping it up in the ‘clear orphan’ clean-up).

I am only theorising though, so this may be wrong. :slightly_smiling_face:


if you log into postgres, you can delete it out of the DB.

I am looking at the current rake destoy tasks and tying to understand how it works. Maybe the ppl that created the current destroy task can implement something for us to del deleted posts


Yes, that is correct.
In order to get rid of an attachment, you need to remove the contents of the post and then delete the post.

1 Like

if you got command aur anything helpful and quick then please share with me!

Thanks Richard and @JammyDodger!

My only issue is that I have 20,000 posts to do this to. Know any shortcuts?

1 Like

I’m afraid I’m at the start of my Discourse journey, so lack the necessary expertise for that. :slightly_smiling_face:

Is it possible to amend this to target deleted posts rather than a user’s posts to achieve a similar thing?

Post.with_deleted.where('deleted_at is not null').update_all(raw: 'This post has been deleted', cooked: 'This post has been deleted')