How to Migrate SQL dump file with Laravel

Database Migrations are no doubt the best thing about Laravel, where your PHP code transforms into SQL with so less effort than usual. But what if you wanted to write a migration for a SQL dump file?

Database Migrations are no doubt the best thing about Laravel, where your PHP code transforms into SQL with so less effort than usual. But what if you wanted to write a migration for a SQL dump file? Laravel has a way around for that too. I wouldn’t call it a proper solution. But it works great.

Step # 01

Create a normal migration file using artisan CLI

php artisan make:migration create_my_table_migration --create=my_table

 

Step # 02

Inside the up method of your migration file, copy & paste the below code

\DB::unprepared( file_get_contents( "link/to/dump.sql" ) );

 

Additional Tip

This works great for smaller dump files, but what if you’ve got a large file to migrate? We got you covered. It’s a bit dirtier but works just fine.

Inside of your up method, before the linking to SQL file, add the following line of code.

ini_set('memory_limit', '-1');
\DB::unprepared( file_get_contents( "link/to/dump.sql" ) );

You can also set memory limit inside your PHP.ini file. Totally up to you. But this saves a bunch of time i guess.