Do Laravel迁移是否锁定它们影响的表?
答
在模式更改期间,Laravel不控制表锁。这由数据库本身控制。
对于MySQL < 5.6,在模式更改期间在表上将保持一个读锁,然后使用快速排他锁定来完成更改。
对于MySQL> = 5.6,使用的是InnoDB,大多数架构更改可以只需要在变化开始快速排它锁,并在这些变化的结束一个快速进行。
可以多一点信息,请阅读this answer,或者你可以检查出MySQL的文档。
答
我不能肯定,迁移将不会锁定受影响的表。但是,阅读Illuminate \ Database \ Console \ Migrations \ MigrationCommand.php类代码,当迁移命令发生时,我没有看到任何涉及锁定表的内容。
我知道,当你在事务中工作(例如,DB :: beginTransactions(),DB :: commit()和DB ::回滚())的锁定/解锁occours。