在 Django 1.5.x 中,我有一个长时间运行的管理命令,其中选择查询返回过时的数据。我怀疑这是因为它们在数据库连接上较早启动的事务中运行。有没有办法判断查询是在事务中运行还是处于自动提交模式?
(这是我之前发布的问题的更集中的版本https://stackoverflow.com/questions/18540099/orm-does-not-return-recent-database-changes https://stackoverflow.com/questions/18540099/orm-does-not-return-recent-database-changes)
从 Django 1.7 开始,Connection.in_atomic_block
会告诉您连接是否在事务内。这似乎没有记录,但它可以在我的机器上运行:
from django.db import transaction
cxn = transaction.get_connection()
if cxn.in_atomic_block:
print "We're inside a transaction!"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)