man*_*in1 13 migration ruby-on-rails
我的理解是所有迁移都包含在一个事务中,这意味着,如果对 1 行进行更改,例如添加 null: false,在表中失败,则其他每一行都将失败。你什么时候不希望这种情况发生disable_ddl_transaction?
disable_ddl_transaction
Tha*_*anh 14
默认情况下,所有迁移都包含在事务中,以便在失败时可以回滚。
disable_ddl_transaction当你想做一些不能在事务中执行的事情时需要使用。例如,您可以检查迁移文档的Transactional Migrations部分。
Transactional Migrations
Žar*_*vić 7
当您想要使用并发(算法)方法在大型表上添加索引时(这可以防止在添加索引时表被锁定),您需要这样做,disable_ddl_transaction因为并发方法无法在事务内执行。请在此处查找更多详细信息。
归档时间:
8 年,3 月 前
查看次数:
10921 次
最近记录:
7 年,1 月 前