我的理解是,所有迁移都封装在一个事务中,这意味着,如果对1行的更改(例如添加null:false)在表中失败,则每隔一行将失败。您何时不希望disable_ddl_transaction
发生这种情况?
最佳答案
默认情况下,所有迁移都包装在事务中,以便在失败时可以回滚。
当您想执行事务中无法执行的操作时,需要使用disable_ddl_transaction
。例如,您可以检查Migration document的Transactional Migrations
部分。
我的理解是,所有迁移都封装在一个事务中,这意味着,如果对1行的更改(例如添加null:false)在表中失败,则每隔一行将失败。您何时不希望disable_ddl_transaction
发生这种情况?
最佳答案
默认情况下,所有迁移都包装在事务中,以便在失败时可以回滚。
当您想执行事务中无法执行的操作时,需要使用disable_ddl_transaction
。例如,您可以检查Migration document的Transactional Migrations
部分。