Eli*_*ght 2 python mysql django transactions
我想在MySQL使用Django交易使用的commit_on_success装饰.根据文档,"如果该函数引发异常,Django将回滚该事务." 但是,这对我来说似乎不起作用:
>>> @transaction.commit_on_success
... def fails():
... Site.objects.create(name="New Site", ip_address="127.0.0.1")
... raise ValueError("oh noes!")
...
>>> Site.objects.count()
2
>>> fails()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/site-packages/django/db/transaction.py", line 240, in _commit_on_success
res = func(*args, **kw)
File "<stdin>", line 4, in fails
ValueError: oh noes!
>>> Site.objects.count()
3
>>>
Run Code Online (Sandbox Code Playgroud)
我很确定MySQL支持交易; 我需要使用不同的表格类型吗?
来自http://docs.djangoproject.com/en/dev/ref/databases/:
"默认引擎是MyISAM [1] .MyISAM的主要缺点是它目前不支持事务或外键.从好的方面来说,它是目前唯一支持全文索引和搜索的引擎.
"InnoDB引擎是完全事务性的,支持外键引用."
| 归档时间: |
|
| 查看次数: |
3442 次 |
| 最近记录: |