~20K レコードを DB に挿入しようとすると、問題が発生します。foreach ループ内でエコーしているにもかかわらず、コマンド ラインに何も出力されていないことに気付きました。代わりに、関連する〜9440レコードを挿入した後にエラーが発生します...
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 91 bytes) in /Users/me/Sites/Laravel/database/connection.php on line 293
これが私のコードです(EloquentとFluentの両方を使用してみました):
<?php
class Process_Controller extends Base_Controller
{
public function action_migrate()
{
$properties = DB::table('raw_properties')->get('id');
$total = count($properties);
foreach ($properties as $x => $p) {
$r = RawProperty::find($p->id);
$count = $x + 1;
$prop_details = array(
'column' => $r->field,
// Total of 21 fields
);
DB::table('properties')->insert($prop_details);
echo "Created #$count of $total\n";
}
}
}