就单个迁移而言,Django迁移具有出色的行为,假设您离开atomic=True
,那么迁移将是全有或全无:它将运行完成或撤消所有操作。
是否有一种方法可以使多次迁移获得全有或全无的行为?也就是说,是否有办法在一个封闭的事务中运行多个迁移(这肯定会导致other problems),或者在失败时回滚所有成功的迁移?
对于上下文,我正在寻找一个命令或设置来执行此操作,以便可以将其包含在部署脚本中。当前,如果发生故障,我的部署中唯一不会回滚的部分是数据库更改。我知道可以通过在发生故障时运行python manage.py migrate APP_NAME MIGRATION_NUMBER
来手动完成此操作,但这需要了解每个应用程序上次运行的迁移。