Seeding with Laravel is really useful for populating the database for instance a typical use case:
class TitlesDatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
Title::create(['title' => 'Mr']);
Title::create(['title' => 'Miss']);
Title::create(['title' => 'Ms']);
Title::create(['title' => 'Mrs']);
Title::create(['title' => 'Dr']);
}
}
That's fine for simple inserts but when you need to import complex data say from an export the above won't do.
Instead DB::unprepared can be used to read and run raw sql
This example will import the sql provided.
//path to sql file
$sql = base_path('dump.sql');
//collect contents and pass to DB::unprepared
DB::unprepared(file_get_contents($sql));