migrateするときにデータベースシーダー実行時にsqlを直接実行させる方法
初期化ファイルをSeederで記述するのはデータが多くて面倒な場合は、ダンプファイルなど記述したSQLファイルを作って直接SQLを実行してやればいい。
方法
-
databaseディレクトリの配下にsqlというディレクトリを作成
-
initial.sqlというファイルを作成
-
initial.sqlにSQL文を記述するかコピペする
-
database/seeder/DatabaseSeeder.phpに下記のように追記
class DatabaseSeeder extends Seeder
{
public function run()
{
$path = 'database/sql/initial.sql';
\DB::unprepared(file_get_contents($path));
}
}
これで設定は完了です。
DBの初期化とシーダーの実行
オプションで--seedをつけることで、DBの初期化とシーダーの実行も一緒にやってくれます。
php artisan migrate:fresh --seed