Утилиты¶
очистить_дубликат_истории¶
По соображениям производительности 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