はじめに
こんばんは。
今回もLaravelでかんたんな備忘録です。
ある案件で、LaravelのSeederでダンプしたSQLファイルを読み込ませたい状況が出てきました。
今まで Factory/Seederを作ってテストデータを作ってたのですが、SQLファイルを読み込ませるのはやったことなかったので、調べてみました。
本題
やり方はかんたんで以下のような感じで作ります。
Seederファイル
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; class DumpDataSeeder extends Seeder { /** * @return void */ public function run(): void { $path = __DIR__ . '/sql/dump-data.sql'; \DB::unprepared(file_get_contents($path)); } }
実行
$ php artisan db:seed --class=DumpDataSeeder
これで問題なくデータが入ります。
終わりに
かんたんですが、現場からは以上です。