In this tutorial, we will learn Laravel Import Large SQL File using Seeder Example.


Hello Dev, let's see an example of how to import a large SQL file using seeder in laravel application.


Run below command to create seeder: 

php artisan make:seeder ImportTableSeeder

Create following file, database/seeders/ImportTableSeeder.php

<?php
  
namespace Database\Seeders;
  
use Illuminate\Database\Seeder;
  
class ImportTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $sql = public_path('data.sql');
          
        $db = [
            'username' => env('DB_USERNAME'),
            'password' => env('DB_PASSWORD'),
            'host' => env('DB_HOST'),
            'database' => env('DB_DATABASE')
        ];
  
        exec("mysql --user={$db['username']} --password={$db['password']} --host={$db['host']} --database {$db['database']} < $sql");
  
        \Log::info('SQL Import Done');
    }
}

Now run the below command:

php artisan db:seed --class=ImportTableSeeder

May this example help you.