本番環境で DB シード スクリプトを実行すると、メモリが枯渇します。
以下は私のシードスクリプトです。
class MembershipTableSeeder extends Seeder
{
public function run()
{
DB::table('members')->delete();
foreach (range(1, 99) as $days){
Members::create(array('membership_code' => 'test'.$days));
}
DB::unprepared(file_get_contents(app_path()."/database/seeds/members.sql"));
}
}
そこで私がしたことは、シード スクリプトに無制限を追加することでした。
ini_set('memory_limit', '-1');
問題は、スクリプトを実行すると、出力がターミナルにログされ、SQL スクリプトの内容が記録されることです (これは非常に大きなものです)。
多くのメモリを消費しない DB シード内で SQL ダンプを実行する良い方法はありますか? 私が今やったことは、手動で実行することでした:
mysql -uuser -p db < script.sql