I often find myself in situations where I need to fully clear my website's cache (memcached or whatever). Often times this is required because:
- I'm deploying new code and it will fail to run properly with my currently cached objects.
- I need to purge invalid (or old) information.
- A million other reasons.
The standard way to clear your cache is to open up a management shell, eg:
$ python manage.py shell
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.core.cache import cache
>>> cache.clear()
But obviously, this is annoying as I have to manually log into my production shell.
django-clear-cache
makes this process as easy as running a single
management command.
To install django-clear-cache
, simply run pip install django-clear-cache
and you'll get the latest version installed automatically.
Next, modify your Django settings.py
file, and add clear_cache
to your
INSTALLED_APPS
setting:
INSTALLED_APPS = (
# ...
'clear_cache',
)
To clear your cache, simply run the clear_cache
management command:
$ python manage.py clear_cache
Your cache has been cleared!
NOTE: This will only (obviously) work if you've got a cache configured (eg: memcached, local memory, etc.). If you have no idea what I'm talking about, read through the official Django caching docs.
Want to run the tests? No problem:
$ git clone git://github.com/rdegges/django-clear-cache.git
$ cd django-clear-cache
$ python setup.py develop
...
$ python manage.py test clear_cache
Creating test database for alias 'default'...
.Your cache has been cleared!
..
----------------------------------------------------------------------
Ran 3 tests in 1.007s
OK
Destroying test database for alias 'default'...