Django无法清除Oracle后端的数据库缓存

时间:2013-09-26 09:17:51

标签: python django oracle cx-oracle django-cache

我的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。

0 个答案:

没有答案