Use Laravel seed and sql files to populate database
- Add
DB::unprepared()
to the run method ofDatabaseSeeder
. Run
php artisan db:seed
at the command line.class DatabaseSeeder extends Seeder { public function run() { Eloquent::unguard(); $this->call('UserTableSeeder'); $this->command->info('User table seeded!'); $path = 'app/developer_docs/countries.sql'; DB::unprepared(file_get_contents($path)); $this->command->info('Country table seeded!'); } }
I found a package that creates seed files from database tables and rows. It currently supports Laravel 4, 5, 6, 7, 8 and 9:
https://github.com/orangehill/iseed
In the end, it's basically as easy as this:
php artisan iseed my_table
or for multiple occasions:
php artisan iseed my_table,another_table