【Laravel】php artisan optimizeのエラーの対処


laravelでphp artisanコマンドを使用した際にエラーが出たのでその備忘録として

はじめに

laravelで新規にテーブルの作成をしなければいけなかったが、phpマイグレーションがうまくいかず、
その対処としてphp artisan optimizeを使用したためにエラーがでたので、その対処の方法について記載する

まずは現状のマイグレーション一覧を取得

php artisan migrate:statusでマイグレーション状況を取得ができる

php artisan migrate:status

php artisan tinkerで現在使用しているテーブルの確認ができた

まずそもそもチーム内でどのテーブルを使用しているのかがわからなかったので確認した

php artisan tinker 実施後に以下のコマンドが使用できる

//現在使用しているテーブル一覧の取得ができる
DB::select('SHOW TABLES');

// membersテーブルのデータが取得できる
DB::table('members')->get();

 上記のコマンドでテーブルの一覧を確認できたので、新規でマイグレーションの作成

php artisan tinkerから exitで抜ける
//このコマンドで/database/migrations/ 配下に作成してくれる
php artisan make:migration create_member_table

//こんな感じで生成される
2020_05_02_102134_create_members_table.php

php artisan migrateをしようとしたが、エラーが発生

 SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table `users` 

usersがすでにあるみたいなことをいわれる。。。。

php artisan migrate:freshをすれば直るという記事が多いが、データの消去はしたくないので他の解決方法を模索

最適化をすれば直るかもしれないと思いコマンドを調べて、

composer dump-autoload
php artisan clear-compiled
php artisan optimize
php artisan config:cache

php artisan optimizeを実施したらエラーが発生

php artisan optimize実行時のエラーが消えた方法

php artisan optimize実施のエラーは以下で対処可能

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

参考URL

【Laravel】わりとよく使うArtisanコマンド集

Laravel キャッシュクリア系コマンドなど
Laravel artisanコマンドメモ
[Laravel]デプロイ時の最適化