LoginSignup
22
18

More than 1 year has passed since last update.

テーブルにカラムの追加と削除をする方法(Laravel)

Last updated at Posted at 2020-01-04

はじめに

今回も自分用のメモとしてアウトプットします。

・カラムの追加

1.migrationファイルの作成

例:postsテーブルにtagというカラムを追加したい場合

$ php artisan make:migration add_tag_to_posts_table --table=posts

上記の
:small_red_triangle:add_tag_to_posts_tableの部分は任意の命名で大丈夫です。
ですが、マイグレーションファイル名がそのままクラス名として生成されるので、できるだけわかりやすい名前をつけた方が良いです。

:small_red_triangle:--table=postsの部分では、カラムを追加するテーブルの指定を行なっています。

1のコマンドをターミナルで実行するとマイグレーションファイルが作成されます。

2.migrationファイルに記述の追加

upメソッドに追加の処理を記述します。


    public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
                        $table->string('tag');
        });
    }

上記のような感じですね。

3.migrationの実行

$ php artisan migrate

こちらでテーブルにカラムの追加ができます。

・カラムの削除

こちらもカラムの追加と流れは似ています。

1.まずは、composer で “doctrine/dbal” パッケージを追加する必要があります。

$ composer require doctrine/dbal

2.migrationファイルの作成

例:postsテーブルのtagというカラムを削除したい場合

$ php artisan make:migration drop_column_tag_column --table=posts

こちらもカラムの追加と同様に、任意のファイル名とカラムを削除したいテーブルの指定をします。

3.migrationファイルに記述の追加

upメソッドに削除の処理を記述します。

    public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
            $table->dropColumn('tag');
        });
    }

    public function down()
    {
        Schema::table('posts', function (Blueprint $table) {
          // カラム作成時のコードを記述
        });
    }

カラムを削除するには、スキーマビルダのdropColumnメソッドを使用します。
tagの部分は、削除したいカラム名に変更をお願いします。
また、downメソッドにカラム作成時に書いたコードを記述しておくと、ロールバック時に消したカラムを元に戻すことができます。もしそれが不要の場合は記述は無しでも大丈夫です。

4.migrationの実行

$ php artisan migrate

これでテーブルからカラムの削除ができます。

さいごに

初歩的ではありますが、自分の為にもアウトプットしました。
今回の記事で誤字、脱字等ありましたらお手数ですがご指摘をお願い致します。また、最後まで見て頂きありがとうございました!!

22
18
2

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
22
18