LoginSignup
15
8

More than 1 year has passed since last update.

artisan config:cache した後にロールバックする時はキャッシュファイルを手動で消す!

Last updated at Posted at 2019-06-18

テスト環境にデプロイする時、gitからソースコードをチェックアウトしキャッシュファイルを作成していた。

$ git pull --no-ff --no-edit origin develop/1.0
$ php artisan config:cache

ただロールバックする必要があったので、一度マージ前のコミットに戻ってキャッシュファイルを再生成した所、エラーが出た。

$ git reset --hard HEAD^
$ php artisan config:cache
In ProviderRepository.php line 208:

  Class 'App\Providers\TestServiceProvider' not found

最初にチェックアウトしたコードに含まれるTestSerciveProviderクラスを探しに行っているが、ロールバックしたのでクラス定義ファイルはなくエラーになっているようだ。

キャッシュファイルが悪さしているだろうと思い、 artisan config:clearcomposer clear-cache を実行するが解消しなかった。

composer dump-autoload し直すも状況は変わらず。

$ composer dump-autoload
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover

In ProviderRepository.php line 208:

  Class 'App\Providers\TestServiceProvider' not found


Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1

$ php artisan config:cache
In ProviderRepository.php line 208:

  Class 'App\Providers\TestServiceProvider' not found

色々ネットで調べてもいまいち原因が分からず10分ほど経過した頃、TestServiceProviderクラスの読み込みは確かconfig/app.php に記載してたなーと思っていたら原因に気づいた。

php artisan config:cache した時に生成していた bootstrap/cache 以下のキャッシュファイルに今はもう存在しないクラスが記載されていて、これを消したり再生成したりしようにも artisan コマンドが最初にこのファイルを読みに行ってエラーになっていたようなので手動で削除したところ、問題なくキャッシュし直す事ができ、無事解決!

$ php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
15
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8