因此,在最近的项目中,我一直在使用Laravel的数据库迁移,并且一切正常,除了一个具有约380万行的“城市”表。 预期效果如下:
DB::table('cities')->insert([
'name' => 'Dublin'
]);
但是,当我向上述插入数组中添加380万行时,artisan migration命令只是失败/超时。
我在这里缺少什么吗?还是有更好的方法呢?
城市迁移的文件大小为365 MB,实际上使Phpstorm崩溃(内存不足错误)。 我想知道是否存在将大型数据库迁移拆分为较小文件的方法?
PHP 7.2 Laravel 5.7 Docker / Laradock。
答案 0 :(得分:1)
我会认为它在Job中执行,并在redis队列上运行。
所以只需编写一个简单的命令即可调度作业。我也建议你像1000er块一样写数据:)
答案 1 :(得分:1)
在这种情况下,最好使用Job,因为Job可以使用大块数据批量插入,并且如addi2113所述,如果用于测试环境,则应使用种子。
答案 2 :(得分:0)