Laravelで「Cannot declare class UpdateUsersTable」ほか


Cannot declare class UpdateUsersTable

Laravel 5.5でmake:authを使い、テーブルのカラムの変更を2回行った。
別の端末でセットアップし、php artisan migrateを実行したところ、

In 2019_03_01_183512_update_users_table.php line 29:
Cannot declare class UpdateUsersTable, because the name is already in use

というエラーメッセージが表示され、マイグレートが行われない。

2014_10_12_000000_create_users_table.php
2019_03_01_163803_update_users_table.php
2019_03_01_183512_update_users_table.php

で、エラーが起こっているのは最後のファイルである。
エラー行の29行目はファイルの最終行であり、class UpdateUsersTable extends Migration {対応の閉じ括弧の行だ。

すでにUpdateUsersTableというクラスはあるので宣言はできない、という感じだが……何か釈然としないまま、

  1. 最後のファイルのリネームを行う(.bakを付ける)
  2. migrateを実行(問題なし)
  3. リネームしたファイルを元に戻す
  4. migrateを実行(最後のファイルのみ実行される。問題なし)

とした。自動でカブらないクラス名にして貰えないものなんですかね…?

Please provide a valid cache path.

「cache」って書いてあるので、cacheディレクトリだけが足りないのか!と思ってしまいますが、同階層のviewsディレクトリがなくても同じエラーが出ます。

storage/framework/sessions
storage/framework/cache
storage/framework/views

上記のディレクトリはプロジェクト作成時に作成され、その後は自動的には作成されずエラーになるので、注意が必要です。