nemesifier
nemesifier

Reputation: 8509

Session database table cleanup

Does this table need to be purged or is it taken care of automatically by Django?

Upvotes: 49

Views: 31824

Answers (6)

Quique
Quique

Reputation: 956

Do NOT execute Session.objects.all().delete() nor TRUNCATE TABLE django_session;, as that would delete all sessions, including active ones!

If you want to clear expired sessions programmatically:

from django.core import management

management.call_command('clearsessions')

Upvotes: 1

CleberAP
CleberAP

Reputation: 1

Other method:

I'm using Django 3.2 and i recommend using the django-auto-logout package.

It allows active time and idle time session control.

In the template you can use variables together with Javascript.

Upvotes: 0

CleberAP
CleberAP

Reputation: 1

I know this post is old but I tried this command/attribute and it worked for me.

In the 'base.html' file, I inserted: {{ request.session.clear_expired }}

This clears expired records from the django_session table when the user clicks on any link in the template after the session expires.

Even so, it is necessary to create a routine to clear expired records over a period longer than one day. This is necessary to clear logs when user closes browser with open sessions.

I used Django 3.2.4

Upvotes: 0

Abid A
Abid A

Reputation: 7858

Django does NOT provide automatic purging. There is however a handy command available to help you do it manually: Django docs: Clearing the session store

python manage.py clearsessions

Upvotes: 66

Timo
Timo

Reputation: 3217

On my development server, I prefer a database command over python manage.py clearsessions because you delete all sessions, not just the expired ones (here: MySQL). To login into your database and do:

truncate table django_session;

BTW, session is not a database, but a table (django_session) and an app (django.contrib.sessions).

Upvotes: 3

Roshan Bagdiya
Roshan Bagdiya

Reputation: 2178

  1. Django 1.6 or Above
    python manage.py clearsessions
    
  2. Django 1.5 or lower
    python manage.py cleanup
    
  3. From Django Shell
    from django.contrib.sessions.models import Session
    Session.objects.all().delete()
    
  4. django-session-cleanup cornJob

Upvotes: 23

Related Questions