我使用Django 1.10和Postgres數據庫以及django-rest-framework。我調試我的代碼,無論我在哪裏some_entity.save()
,我立即看到數據庫中的變化。問題是我有ATOMIC_REQUESTS = True
,這意味着在視圖成功完成之前沒有任何東西被提交到數據庫。我現在很擔心數據庫的完整性 - 如果後來發生異常,沒有東西會回滾Django在交易結束前提交到數據庫
0
A
回答
1
您所描述的是數據庫事務的完美預期行爲。
隨着ATOMIC_REQUESTS = True
每個請求被包裝在一個數據庫事務中,這意味着一個事務在接收到請求時開始並且在沒有問題產生響應之後提交。
在交易過程中,您可以閱讀自己的寫作:這就是SQL數據庫的工作方式(相反會令人困惑)。
儘管在大多數配置中,這些寫入是「隔離的」:如果它們還沒有提交,它們將不會從併發請求(在不同的事務中)看到。有關事務隔離的更多詳細信息,請參閱postgresql文檔:https://www.postgresql.org/docs/current/static/transaction-iso.html
+0
謝謝,雖然這對我來說很奇怪。我習慣了JPA和Hybernate在一個我工作的項目上。在那裏,直到交易實施之前,什麼都看不到。要麼他們這樣工作,要麼項目配置如此,否則我會誤導/誤認。 –
相關問題
- 1. NetSuite交易提取到SQL數據庫
- 2. 春季交易中數據未提交到數據庫
- 3. Django 1.4交易到Django 1.8交易
- 4. 禁用交易按鈕,直到交易結束在asp.net頁面
- 5. 的Django的ModelForm提交到數據庫
- 6. 帳戶交易的數據庫結構
- 7. 交易提交?
- 8. 正在執行其他交易時結束交易
- 9. 數據到Munge:股票交易,交易所交易
- 10. 無交易提取數據
- 11. 在批次結束時檢測到不可提交的事務。交易回滾
- 12. 申請一個月結束交易日曆到Yahoo API數據
- 13. 如何在Oracle數據庫中提交「提交前」觸發器
- 14. Android數據庫交易
- 15. Android Firebase數據庫交易
- 16. 數據庫問題 - 交易
- 17. 交易和提交
- 18. 開始交易...提交交易問題
- 19. 提交到數據庫
- 20. JTA CMT交易界限 - 交易開始和結束的地方?
- 21. MSSQL數據庫:日誌沒有清除後提交交易
- 22. 交易數據
- 23. Django的交易
- 24. Django的不提交表單數據庫
- 25. 提交表格將不會提交數據到數據庫
- 26. 片段交易:如何交換數據到以前的片段
- 27. 將DataGrid數據提交到數據庫?
- 28. 不提交數據到數據庫
- 29. 提交表單數據到數據庫
- 30. 以Yii :: app()結束交易 - > end
當您說「立即看到db中的更改」時,您的意思是什麼?從目前的交易中,這是可以預料的。 –
嗯,我的意思是我在調試模式下進行線對線。每當我通過任何保存方法時,數據立即在數據庫中更新。我希望它會在交易結束時承諾。如果不是,如果發生異常,交易將如何回滾? –