How to remove admin logs

I want to remove admin logs (admin/logs/staff_action_logs) or disable staff logs?
How to?

No. You can’t disable it.

Why would you want to do this?

I think database larger

Could you safely delete using postgres Sql?

thanks yoú

Take a back-up before you start firing off commands though!

There are very few legitimate reasons to do this…what is the reason?

First, @dangtrungluong , congratulations on having a forum that’s so successful that you actually need to worry about the database size.

However, perhaps you should consider sharding / partitioning?
Generating more granular backups?

Simply deleting data is usually a poor idea likely to lead to unforeseen problems. What exactly is the problem you’re having that you’re wanting to solve?

2 Likes

@Mittineague i’m newbie joining to “discourse”

If you are new to using discourse then I do not see what the issue is at the moment and why you feel it will make a massive impact on your database. We have logs going back to 2014 with no impact and I do not believe it takes up a massive amount of space.

7 Likes

It’s not a bad thing to think about things before they become a problem. If anything, I don’t think the database will be a problem as much as heavy weight media files could be. i.e. should you set up a CDN so the requests are served from closest to a visitors location? Do members reallly need to fill up a topic with mega weight files that could slow down page load and consume bandwidth?

hi. thank for all
:slight_smile:

You could do it using the rails console but it’s also dangerous. So if I’m correct it would like

cd /var/discourse
sudo ./launcher enter app
rails c

Now you’re in the console, one option to delete the entire staff action / admin logs is to use this:

However this removes everything which may not be what you wanted. You may want to limit the time period or investigate certain actions.

For example:
UserHistory.where(action: 17, acting_user_id: 5)

This would return all posts deleted by the user who’s id is 5

or

UserHistory.where(action: 17, post_id: 15643)

This would return information about who deleted the post with id 15643

For a list of table fields and actions id’s see this file:

# == Schema Information
#
# Table name: user_histories
#
#  id             :integer          not null, primary key
#  action         :integer          not null
#  acting_user_id :integer
#  target_user_id :integer
#  details        :text
#  created_at     :datetime         not null
#  updated_at     :datetime         not null
#  context        :string
#  ip_address     :string
#  email          :string
#  subject        :text
#  previous_value :text
#  new_value      :text
#  topic_id       :integer
#  admin_only     :boolean          default(FALSE)
#  post_id        :integer
#  custom_type    :string
#  category_id    :integer
#
# Indexes
#
#  index_user_histories_on_acting_user_id_and_action_and_id        (acting_user_id,action,id)
#  index_user_histories_on_action_and_id                           (action,id)
#  index_user_histories_on_category_id                             (category_id)
#  index_user_histories_on_subject_and_id                          (subject,id)
#  index_user_histories_on_target_user_id_and_id                   (target_user_id,id)
#  index_user_histories_on_topic_id_and_target_user_id_and_action  (topic_id,target_user_id,action)
#