Python Django缓存设置阻止所有命令
我的问题是,我为django配置了一个DB缓存。现在,如果我清除数据库,则没有命令工作:Python Django缓存设置阻止所有命令,python,django,caching,Python,Django,Caching,我的问题是,我为django配置了一个DB缓存。现在,如果我清除数据库,则没有命令工作: Traceback (most recent call last): File "app/manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.
Traceback (most recent call last):
File "app/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
django.setup()
File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate
app_config.ready()
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/apps.py", line 22, in ready
self.module.autodiscover()
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 23, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/usr/local/lib/python2.7/site-packages/django/utils/module_loading.py", line 74, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/cms/admin/__init__.py", line 11, in <module>
plugin_pool.plugin_pool.discover_plugins()
File "/usr/local/lib/python2.7/site-packages/cms/plugin_pool.py", line 35, in discover_plugins
invalidate_cms_page_cache()
File "/usr/local/lib/python2.7/site-packages/cms/views.py", line 340, in invalidate_cms_page_cache
version = _get_cache_version()
File "/usr/local/lib/python2.7/site-packages/cms/views.py", line 285, in _get_cache_version
version = cache.get(CMS_PAGE_CACHE_VERSION_KEY)
File "/usr/local/lib/python2.7/site-packages/django/core/cache/backends/db.py", line 65, in get
"WHERE cache_key = %%s" % table, [key])
File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 81, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "cache_table" does not exist
LINE 1: SELECT cache_key, value, expires FROM "cache_table" WHERE ca...
感谢您的帮助。查看回溯,似乎有应用程序正在尝试在创建缓存表之前访问缓存表。您可以尝试暂时禁用CMS应用程序,直到创建缓存表
如果无法执行此操作,请创建一个新的Django项目,使用相同的数据库和缓存设置,并使用新项目中的
/manage.py createcachetable
命令创建表。查看回溯,似乎有一个应用程序正在尝试在创建缓存表之前访问它。您可以尝试暂时禁用CMS应用程序,直到创建缓存表
如果您不能做到这一点,请创建一个新的Django项目,使用相同的数据库和缓存设置,并使用新项目中的
/manage.py createcachetable
命令创建表。我遇到了同样的鸡和蛋的情况,如果您设置了缓存设置(甚至是空字典)Django CMS试图在运行python manage.py…
时访问它,因此无法创建缓存表
但是createcachetable
有一个方便的--settings
选项,我最终在我的实际settings.py
旁边创建了一个settings\u nocache.py
,其中包含以下内容:
from .settings import *
del CACHES
并运行以下命令创建我的缓存表:
python manage.py createcachetable --settings settings_nocache default_cache
--settings
选项后的参数是pythonimport路径,而不是文件系统的路径。我遇到了同样的鸡和蛋的情况,如果您设置了缓存设置(甚至是空字典)Django CMS试图在运行python manage.py…
时访问它,因此无法创建缓存表
但是createcachetable
有一个方便的--settings
选项,我最终在我的实际settings.py
旁边创建了一个settings\u nocache.py
,其中包含以下内容:
from .settings import *
del CACHES
并运行以下命令创建我的缓存表:
python manage.py createcachetable --settings settings_nocache default_cache
--settings
选项后的参数是python导入路径,而不是文件系统路径