Heroku で Laravel の seeder 実行時に Class 'Faker\Factory' not found となる場合の対処
Heroku 上で Laravel で作成したアプリケーションを動しているよきに発生したエラーの対応についてです。
発生したエラーについて
ローカルでは正常に動いていた seeder が、Heroku ではエラーになってしまいました。 下記が seeder 実行時のエラーです。Factory クラスが not found となっています。
+++ perl -le 'print crypt($ENV{"BASIC_AUTH_PASSWORD"}, rand(0xffffffff));'
++ echo -e hoge:35BnqOuchwx0M
+ unset i
+ php artisan db:seed --class=DatabaseSeeder
Seeding: FakeDataSeeder
In DatabaseServiceProvider.php line 78:
Class 'Faker\Factory' not found
対応方法
Heroku でのエラーに絞って調べてみたところ、下記の issue を見つけました。
やはり他の人も同じエラーに遭遇しているようで、コメントに記載されているように、composer.json の require-dev
に記載されている fzaninotto/faker
を require
に記載後に composer update
を実行することで、エラーを解決できました。