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.
Create a normal migration file using
php artisan make:migration create_my_table_migration --create=my_table
up method of your migration file, copy & paste the below code
\DB::unprepared( file_get_contents( "link/to/dump.sql" ) );
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.