1

有没有办法在每次部署后自动清除缓存?

或者有没有我可以运行的命令来清除它,类似于运行进程的命令?

例如 heroku 运行 python manage.py syncdb

4

1 回答 1

3

您可以使用清除整个缓存(无论底层实现如何)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以管理部署,因为它允许您编写自动化脚本来执行所有必需的步骤(以及调用此清除缓存脚本)

于 2013-04-12T06:48:22.930 回答