djnago で transaction の 管理 を手動で行う方法を調べたところ、
データベーストランザクションの管理 — Django 1.4 documentation に、
@transaction.commit_manually
というデコレータがあったので、
こちらを付与したところ、以下のエラーが発生しました。
AttributeError: module 'django.db.transaction' has no attribute 'commit_manually'
使用しているDjango Version
使用Version は 1.10 です。
pip list
----------------------------
Django (1.10)
----------------------------
原因
以下のドキュメントに記載がありますが、
Django Deprecation Timeline — Django 1.6a1 documentation
@transaction.commit_manually
は、 Django 1.8 で削除されたようです。
対応方法(というかDjango 1.8 以降での記述方法)
StackOverFlow に 以下の記事がありました。
python - Upgrading transaction.commit_manually() to Django > 1.6 - Stack Overflow
with 句に、transaction.atomic()
を書いて、
transaction 管理したい処理をnestさせて書けば、良いようです。
with transaction.atomic():
do_something()
以上です。
コメント