Laravel6でカラム追加時にマイグレーションファイルのテーブル名を間違えた

##経緯
既存のusersテーブルにカラムを追加しようとして、以下を実行。

```terminal:ターミナル
$ php artisan make:migration add_columns_share_id_to_user_table --table=user
```

作成されたファイルを次のように修正。

```php:2021_06_18_180516_add_columns_share_id_to_user_table.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddColumnsShareIdToUserTable extends Migration
{
    // 〜省略〜
    public function up()
    {
        Schema::table('user', function (Blueprint $table) {
            $table->string('share_id', 8); //追加
        });
    }

    // 〜省略〜
    public function down()
    {
        Schema::table('user', function (Blueprint $table) {
            $table->dropColumn('share_id'); //追加
        });
    }
}

```

```terminal:ターミナル
$ php artisan migrate   
```

ファイル修正後に上記を実行したらエラー発生。

##エラー内容（１）
```terminal:ターミナル
   Illuminate\Database\QueryException  : SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.user' doesn't exist (SQL: alter table `user` add `share_id` varchar(8) not null)

  at /Applications/MAMP/htdocs/プロジェクト名/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
    665|         // If an exception occurs when attempting to run a query, we'll format the error
    666|         // message to include the bindings with SQL, which will make this exception a
    667|         // lot more helpful to the developer instead of just the database's errors.
    668|         catch (Exception $e) {
  > 669|             throw new QueryException(
    670|                 $query, $this->prepareBindings($bindings), $e

```

##対応（１）
見直してみると、最初にターミナルでマイグレーションファイルを作成したときに、テーブル名を間違えています。

以下のようにファイルを修正。

```php:2021_06_18_180516_add_columns_share_id_to_users_table.php
//　↑ファイル名をuserからusersに変更しています。

    // 〜省略〜

class AddColumnsShareIdToUserTable extends Migration
{
    // 〜省略〜
    public function up()
    {
        Schema::table('users', function (Blueprint $table) { // ←userからusersに変更
            $table->string('share_id', 8);
        });
    }

    // 〜省略〜
    public function down()
    {
        Schema::table('user', function (Blueprint $table) { // ←userからusersに変更
            $table->dropColumn('share_id');
        });
    }
}


```

修正後、composer dump-autoloadを実行した後に、再度php artisan migrateを実行。

```terminal:ターミナル
$ composer dump-autoload

Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: laravel/ui
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
Generated optimized autoload files containing 4960 classes


$ php artisan migrate
```

しかし、再度エラー発生。
エラー内容は先ほどから変わっています。

##エラー内容（２）
```terminal:ターミナル
   Symfony\Component\Debug\Exception\FatalThrowableError  : Class 'AddColumnsShareIdToUsersTable' not found

  at /Applications/MAMP/htdocs/プロジェクト名/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:453
    449|     public function resolve($file)
    450|     {
    451|         $class = Str::studly(implode('_', array_slice(explode('_', $file), 4)));
    452| 
  > 453|         return new $class;
    454|     }
    455| 
    456|     /**
    457|      * Get all of the migration files in a given path.

  Exception trace:

  1   Illuminate\Database\Migrations\Migrator::resolve("2021_06_18_180516_add_columns_share_id_to_users_table")
      /Applications/MAMP/htdocs/プロジェクト名/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:189

  2   Illuminate\Database\Migrations\Migrator::runUp("/Applications/MAMP/htdocs/プロジェクト名/database/migrations/2021_06_18_180516_add_columns_share_id_to_users_table.php")
      /Applications/MAMP/htdocs/プロジェクト名/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php:165

  Please use the argument -v to see more details.
```

##対応（２）
よくよく見直すと、あと一ヶ所間違っているところがありました。

```php:2021_06_18_180516_add_columns_share_id_to_users_table.php
    // 〜省略〜

class AddColumnsShareIdToUsersTable extends Migration // ここです。User→Users
{
    // 〜省略〜

```

上記を修正した後に再度 composer dump-autoloadを実行し、php artisan migrateを実行したら無事成功しました。

##まとめ
マイグレーションファイルを作成するときにテーブル名を間違えた場合は、

* ファイル名
* コード
    * class
    * public function up()
    * public function down()

の4ヶ所を修正し、composer dump-autoloadを実行すると改善する。

今後は、ターミナルでコマンドを実行する時は、もっとしっかり確認しようと思います。