【Laravel】 DBのカラムを追加・編集・削除をする方法

今回は、LaravelでDBのカラムを追加や編集、削除を行う方法を簡単にまとめてみます。

#使用環境
Laravel 6.2
MySQL 8.0

#前提
hogeテーブルを作っているとします。

```php:20xx_xx_xx_130000_create_hoge_table.php
class CreateHogeTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('hoge', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('hoge');

            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('hoge', function (Blueprint $table) {
            //
        });
    }
}
```

#カラムを追加

すでにあるテーブルにカラムを追加します。
以下を実行します。

```PHP:ターミナル
php artisan make:migration　add_hoge_id_to_hoge_table --table=hoge
```

ここの`add_hoge_id_to_hoge_table`は任意の名前です。
後に確認したときに`何をどのテーブルに追加するか`と明記した方がわかりやすいかなと思います。
ここで重要なのが`--tableオプション`です。このオプションの後はテーブル名を記載しましょう。

実行するとmigrationファイルが生成されます。
追加したいカラムを記載します。

```php:php:20xx_xx_xx_130000_add_hoge_id_to_hoge_table.php
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('hoge', function (Blueprint $table) {
            $table->string('hoge_id'); //追加したいカラム
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('hoge', function (Blueprint $table) {
            //
        });
    }
}

```
後は、migrateをすれば追加完了です！

```PHP:ターミナル
php artisan migrate
```

#カラムを編集する
次は、カラムを編集します。
先ほど追加したカラムをnullを許容するように設定します。

migrationファイルを作成する前に、ライブラリをインストールしないとできません。
以下を実行してインストールしましょう。

```php:ターミナル
composer require doctrine/dbal
```

次にmigrationファイルを作成します。

```PHP:ターミナル
php artisan make:migration　change_hoge_id_to_nullable_on_hoge_table --table=hoge
```

生成されたファイルに記載していきます。

```php:php:20xx_xx_xx_130000_change_hoge_id_to_nullable_on_hoge_table.php
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('hoge', function (Blueprint $table) {
            $table->string('hoge_id')->nullable()->change(); //編集したいカラム
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('hoge', function (Blueprint $table) {
            //
        });
    }
}

```

後は、migrateをすれば編集完了です！

```PHP:ターミナル
php artisan migrate
```

#カラムの削除

先ほど追加、編集したカラムを削除します。

```PHP:ターミナル
php artisan make:migration　drop_column_hoge_id_column --table=hoge
```

生成されたファイルに記載していきます。

```php:php:20xx_xx_xx_130000_cdrop_column_hoge_id_column.php
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('hoge', function (Blueprint $table) {
            $table->dropColumn('hoge_id'); //削除したいカラム
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('hoge', function (Blueprint $table) {
            //
        });
    }
}
```

後は、migrateをすれば削除完了です！

```PHP:ターミナル
php artisan migrate
```

以上が、カラムの追加、編集、削除の方法でした。

#参考文献
https://qiita.com/usaginooheso/items/6f307a15b5f7d5dd981f
https://qiita.com/kambe0331/items/1fe65fc001b958efb6d0

ありがとうございました！