我的oracle缓存表中有一行。我试图用标准的django方式清除它:
from django.core.cache import cache
cache.clear()
但它不起作用!该行仍在我的缓存表中。
所以我运行python manage.py sell
并从DatabaseCache.clear()
方法中添加一些代码:
from django.db import connections
table = connections['cache'].ops.quote_name('ws_cache_table')
cursor = connections['cache'].cursor()
cursor.execute('DELETE FROM %s' % table)
但它也不起作用......
我没有抛出任何异常,我的“缓存”连接在settings.py
中正确配置。
当我打开SQL Developer并放入
时DELETE FROM ws_cache_table
表格被正确截断。
另一方面,当我添加:
connections['cache'].commit()
我抛出了异常django.db.transaction.TransactionManagementError: This code isn't under transaction management
,但现在表被截断了。
问题是:我应该怎么做才能让我的表被截断但没有抛出异常?
这是django DatabaseCache.clear()
方法中的错误吗?
我正在使用django 1.4。