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.