私はthe commit_on_success
decoratorでMySQL上でDjangoトランザクションを使用しようとしています。ドキュメントによると、 "関数が例外を発生させた場合でも、Djangoはトランザクションをロールバックします。"しかし、これは私にとってはうまくいかないようです:Django transaction.commit_on_successがトランザクションをロールバックしない
>>> @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
>>>
私はMySQLがトランザクションをサポートしていることを確信しています。別のテーブルタイプなどを使用する必要がありますか?
作品罰金が。私は知らない。私はので、信じて –
@GlennMaynard発音するのが簡単です –