2016-11-22 40 views
0

我有一个datamigration,我真的想在特定情况发生时回滚。如何中止Django数据迁移?

我知道迁移会自动包含在一个事务中,所以我很安全地引发一个异常,然后相信所有更改都会回滚。但是,我应该抛出哪个异常来中止我的Django数据迁移? 我应该写我自己的例外,还是我与raise Exception('My message explaining the problem')罚款? 什么是最佳实践?

回答

1

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

我认为这些缺点大于优点 - 只是提出一个简单的一次性Exception