如何中止Django数据迁移?

时间:2016-11-22 19:30:58

标签: python django django-migrations

我有一个数据迁移,如果发生某种情况,我实际上想要回滚。

我知道迁移会自动包含在事务中,所以我只是提出异常,然后信任要回滚的所有更改。但是我应该提出哪个例外来中止我的Django数据迁移? 我应该写自己的例外,还是我对raise Exception('My message explaining the problem')好吗? 什么是最佳做法?

1 个答案:

答案 0 :(得分:1)

自定义异常会给出稍微更漂亮的消息。另一方面,迁移通常是一次性的,基本上没有彼此或项目其余部分的代码依赖性,这意味着您不能重用异常类来确保每次迁移都是独立的。这里任何异常的唯一目的是提供即时反馈,因为它不会被任何东西捕获(除非可能在生产环境中记录错误......它真的不应该失败)。

我认为缺点超过了优点 - 只需简单地提出一次性Exception