hasTable($migration->getFromTable()); if(!$exists) { $io->warning("Previous version of module can not be found."); } $previous = DB::table($migration->getFromTable())->get(); /** * */ $prodManager = new ProductConfiguration(); /** * * storage all params per product id */ foreach($previous as $setting) { $settings[$setting->product_id][$setting->setting] = $setting->value; $products[] = $setting->product_id; } /** * * update setting data & save */ foreach($settings as $prodId => $settingsArray) { $attrs = $migration->updateValues($settingsArray, $prodId); foreach($attrs as $key => $value) { $prodManager->updateOrCreate(['product_id' => $prodId, 'setting' => $key],['value' => $value]); } } /** * * set new fields */ foreach($migration->getNewFields() as $key => $value) { foreach($products as $id) { $prodManager->updateOrCreate(['product_id' => $id, 'setting' => $key],['value' => $value]); } } /** * */ $io->success("Migration has been finished successfully."); } }