もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

LaravelのSeederでダンプしたSQLファイルを読み込みたい

はじめに

こんばんは。

今回も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

これで問題なくデータが入ります。

終わりに

かんたんですが、現場からは以上です。