【Laravel】任意のseederを動かすartisanコマンドを追加するlaravel-artisan-seeder-selectorの紹介

著者:杉浦

【Laravel】任意のseederを動かすartisanコマンドを追加するlaravel-artisan-seeder-selectorの紹介

 Laravelにはシーディングという仕組みがあります。

シーダ(初期値設定)クラスを使用し、テストデーターをデーターベースに設定するシンプルな方法もLaravelには備わっています。全シーダクラスはdatabase/seedsに保存します。シーダクラスには好きな名前を付けられます。しかしUsersTableSeederなどのような分かりやすい規則に従ったほうが良いでしょう。デフォルトとしてDatabaseSeederクラスが定義されています。このクラスからcallメソッドを使い他の初期値設定クラスを呼び出すことで、シーディングの順番をコントロールできます。
データベース:シーディング 5.8 Laravel

 シーディングはartisan db:seedコマンドを叩くだけでデータベースに初期データを挿入する仕組みで、テストデータの生成やマスタなどの初期データの生成のために使われます。この二つの生成はテスト環境用、本番環境用と明確に使いたい状況の異なる生成です。そのためシーダークラスを分けてつくり両立させます。大体DatabaseSeederクラスに本番環境用データSeederの呼び出しメソッド、謎のテストやデプロイ用らしきクラスにテストデータ生成用メソッドが含まれています。これを–class=[className]オプションで使い分けます。
 –class=[クラス名]オプションは便利なのですがクラス名を知らなければならないという障壁があります。laravel-artisan-seeder-selectorはその障壁すら取り除きます。
Asperhsu/laravel-artisan-seeder-selector: Artisan command for DB Seeder selector
 インストール方法はapp/Console/Commands以下にSeederSelector.php1ファイルをコピペするだけです。もはやスニペットですからそんなものです。そうするとartisan db:seed-selectコマンドが実行できるようになり、次の様にクラス名の代わりに番号で選択する画面が出せます。

 db:seedは手作業で打つことの多いコマンドでもありますからGUI的に使えるこういったコードはありがたいです。

  • この記事いいね! (1)

著者について

杉浦 administrator