Безопасно ли вручную удалять строки данных django_sessions в таблице ProsgreSQL?

Прежде всего, позвольте мне заявить, что я знаю о скриптах очистки сессий Django Python, но в настоящее время у меня нет свободного доступа к оболочке, в которой размещен фреймворк Django. Однако у меня есть доступ к внутренней базе данных PostgreSQL. Я пытаюсь уменьшить размер таблиц с избыточными данными и заметил, что таблица django_session теперь содержит более 2,8 миллиона строк. Я не думаю, что когда-либо было настроено задание cron для очистки сессий с тех пор, как этот сайт начал работать в 2016 году.

Из того, что я прочитал, таблица django_session хранит сессии пользователей, когда они входят в систему, и если они не выходят, она сохраняет их. Поэтому я могу удалить все строки, которые старше указанной даты?

DELETE FROM public.django_session
WHERE expire_date < '2023-01-01'

Я планирую проверить это на тестовом сервере, но мне хотелось бы знать, правильный ли это подход. В противном случае мне придется выяснить, как получить доступ к запуску сценария оболочки для выполнения очистки.

Отсюда:

https://docs.djangoproject.com/en/5.0/topics/http/sessions/

Django не обеспечивает автоматическую очистку истекших сессий. Поэтому ваша работа заключается в регулярной очистке истекших сессий. Для этого Django предоставляет команду управления очисткой: clearsessions. Рекомендуется вызывать эту команду регулярно, например, в качестве ежедневного задания cron.

Обратите внимание, что бэкенд кэша не подвержен этой проблеме, поскольку кэш автоматически удаляет устаревшие данные. Не подвержен этой проблеме и бэкэнд cookie, поскольку данные сессии хранятся в браузерах пользователей.

Вернуться на верх