Skip to content

Instantly share code, notes, and snippets.

@justinmccombs
Created March 14, 2016 20:38
Show Gist options
  • Save justinmccombs/9da6fa8593fb8ce402e2 to your computer and use it in GitHub Desktop.
Save justinmccombs/9da6fa8593fb8ce402e2 to your computer and use it in GitHub Desktop.
class MigrateOrdersAndProducts extends Seeder
{
protected $users;
protected $orders;
public function __construct() {
$this->users = [];
$this->orders = [];
}
public function run() {
$userKey = User::count()+1; // Store the current id to build up an insert array
$lastLegacyUser = LegacyUser::orderBy('legacy_id', 'desc')->first();
$lastLegacyUserId = ($lastLegacyUser) ? $lastLegacyUser->legacy_id : 0;
$orderKey = Order::count()+1;
$legacyUsers = LegacyUser::where('legacy_id', '>', $lastLegacyUserId)->orderBy('legacy_user_id', 'asc')->take(1000)->get();
foreach($legacyUsers as $legacyUser) {
$this->users[] = [
'id' => $userKey,
'name' => $legacyUser->name,
'legacy_id' => $legacyUser->id,
...
];
foreach($legacyUser->legacyOrders as $legacyOrder) {
$this->orders[] = [
'id' => $orderKey,
'user_id' => $userKey,
'legacy_id' => $legacyUser->id,
]
}
$userKey++;
$orderKey++;
}
\DB::table('users')->insert($this->users);
\DB::table('orders')->insert($this->orders);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment