2016-11-22 58 views
0

我有一個datamigration,我真的想在特定情況發生時回滾。如何中止Django數據遷移?

我知道遷移會自動包含在一個事務中,所以我很安全地引發一個異常,然後相信所有更改都會回滾。但是,我應該拋出哪個異常來中止我的Django數據遷移? 我應該寫我自己的例外,還是我與raise Exception('My message explaining the problem')罰款? 什麼是最佳實踐?

回答

1

自定義例外會給稍微漂亮的消息。另一方面,遷移通常是一次性的,基本上沒有代碼依賴關係或項目的其他部分,這意味着您不能重用異常類來確保每次遷移都是獨立的。這裏的任何異常的唯一目的是提供即時反饋,因爲它不會被任何東西所捕獲(除非生產環境中可能出現錯誤日誌記錄......它真的不應該失敗)。

我認爲這些缺點大於優點 - 只是提出一個簡單的一次性Exception