有没有办法在每次部署后自动清除缓存?
或者有没有我可以运行的命令来清除它,类似于运行进程的命令?
例如 heroku 运行 python manage.py syncdb
您可以使用清除整个缓存(无论底层实现如何)django.core.cache.clear
最后,如果要删除缓存中的所有键,请使用 cache.clear()。小心这个;clear() 将从缓存中删除所有内容,而不仅仅是应用程序设置的键。
所以一种方法是手动编写一个管理命令来进行这个调用。在您的一个应用程序中创建一个新模块myapp/management/commands/clear_cache.py
:
from django.core.management.base import BaseCommand
from django.core import cache
class Command(BaseCommand):
help = 'Clears the underlying cache'
def handle(self, *args, **options):
cache.clear()
你现在可以打电话了python manage.py clear_cache
。您应该查看Fabric以管理部署,因为它允许您编写自动化脚本来执行所有必需的步骤(以及调用此清除缓存脚本)