我的理解是,所有迁移都封装在一个事务中,这意味着,如果对1行的更改(例如添加null:false)在表中失败,则每隔一行将失败。您何时不希望disable_ddl_transaction发生这种情况?

最佳答案

默认情况下,所有迁移都包装在事务中,以便在失败时可以回滚。

当您想执行事务中无法执行的操作时,需要使用disable_ddl_transaction。例如,您可以检查Migration documentTransactional Migrations部分。

10-08 17:20