Утилиты

очистить_дубликат_истории

По соображениям производительности django-simple-history всегда создает HistoricalRecord при вызове Model.save(), независимо от того, изменились ли данные на самом деле. Если у вас много дубликатов истории, вы можете запланировать команду clean_duplicate_history.

$ python manage.py clean_duplicate_history --auto

Вы можете использовать --auto для очистки дубликатов для каждой модели с помощью HistoricalRecords или перечислить конкретные модели в качестве args. Есть также -m/--minutes, чтобы указать, на сколько минут назад в историю при поиске (по умолчанию проверяется вся история), так что вы можете запланировать, например, ежечасный cronjob, такой как

$ python manage.py clean_duplicate_history -m 60 --auto

Вы также можете использовать --excluded_fields для предоставления списка полей, которые должны быть исключены из проверки дубликатов

$ python manage.py clean_duplicate_history --auto --excluded_fields field1 field2

чистая_старая_история

Возможно, вы захотите удалить исторические записи, просуществовавшие определенное количество времени.

Если у вас много старой истории, вы можете запланировать команду clean_old_history.

$ python manage.py clean_old_history --auto

Вы можете использовать --auto для удаления старых исторических записей HistoricalRecords или перечислить конкретные модели в качестве args. Вы также можете указать параметр --days, который указывает, сколько дней записей вы хотите сохранить. По умолчанию это 30 дней, что означает, что все записи старше 30 дней будут удалены.

$ python manage.py clean_old_history --days 60 --auto
Вернуться на верх