Button / Way to cleanup all change logs #4503

Closed
opened 2025-12-29 18:36:48 +01:00 by adam · 1 comment
Owner

Originally created by @Zer0x00 on GitHub (Jan 26, 2021).

Environment

  • Python version: 3.8.7
  • NetBox version: 2.10.3

Proposed Functionality

Currently there's no way to clear the changelog.
The documentation states that there's only a read-only endpoint (see https://netbox.readthedocs.io/en/stable/additional-features/change-logging/).

A "delete changelog" button could be added to the admin dashboard which deletes all the changelogs in the table.

Use Case

We have over 6 million items of changelogs and the load times are greater than 5 minutes.
The UI is unusable if someone is using this feature.

Database Changes

Clearing up the items in the changelog table(?)

External Dependencies

None

Originally created by @Zer0x00 on GitHub (Jan 26, 2021). <!-- NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED. This form is only for proposing specific new features or enhancements. If you have a general idea or question, please start a discussion instead: https://github.com/netbox-community/netbox/discussions NOTE: Due to an excessive backlog of feature requests, we are not currently accepting any proposals which significantly extend NetBox's feature scope. Please describe the environment in which you are running NetBox. Be sure that you are running an unmodified instance of the latest stable release before submitting a bug report. --> ### Environment * Python version: 3.8.7 * NetBox version: 2.10.3 <!-- Describe in detail the new functionality you are proposing. Include any specific changes to work flows, data models, or the user interface. --> ### Proposed Functionality Currently there's no way to clear the changelog. The documentation states that there's only a read-only endpoint (see https://netbox.readthedocs.io/en/stable/additional-features/change-logging/). A "delete changelog" button could be added to the admin dashboard which deletes all the changelogs in the table. <!-- Convey an example use case for your proposed feature. Write from the perspective of a NetBox user who would benefit from the proposed functionality and describe how. ---> ### Use Case We have over 6 million items of changelogs and the load times are greater than 5 minutes. The UI is unusable if someone is using this feature. <!-- Note any changes to the database schema necessary to support the new feature. For example, does the proposal require adding a new model or field? (Not all new features require database changes.) ---> ### Database Changes Clearing up the items in the changelog table(?) <!-- List any new dependencies on external libraries or services that this new feature would introduce. For example, does the proposal require the installation of a new Python package? (Not all new features introduce new dependencies.) --> ### External Dependencies None
adam closed this issue 2025-12-29 18:36:48 +01:00
Author
Owner

@jeremystretch commented on GitHub (Jan 26, 2021):

Please see the CHANGELOG_RETENTION configuration parameter, which handles automatically removing expired change records.

Deleting all change records seems an unusual use case subject to exploitation, however if you really need to, you can accomplish this using the NetBox console:

$ ./manage.py nbshell
### NetBox interactive shell (jstretch-workstation)
### Python 3.6.9 | Django 3.1.3 | NetBox 2.10.4-dev
### lsmodels() will show available models. Use help(<model>) for more info.
>>> ObjectChange.objects.all().delete()
(211, {'extras.ObjectChange': 211})
@jeremystretch commented on GitHub (Jan 26, 2021): Please see the [`CHANGELOG_RETENTION`](https://netbox.readthedocs.io/en/stable/configuration/optional-settings/#changelog_retention) configuration parameter, which handles automatically removing expired change records. Deleting _all_ change records seems an unusual use case subject to exploitation, however if you really need to, you can accomplish this using the NetBox console: ``` $ ./manage.py nbshell ### NetBox interactive shell (jstretch-workstation) ### Python 3.6.9 | Django 3.1.3 | NetBox 2.10.4-dev ### lsmodels() will show available models. Use help(<model>) for more info. >>> ObjectChange.objects.all().delete() (211, {'extras.ObjectChange': 211}) ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#4503