2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Laravel】upメソッドとdownメソッドについて

Posted at

#はじめに
今回は、マイグレーションファイルを作成したときに記述されているupメソッドとdownメソッドについて簡単に解説していきます。

#upメソッド
データベースに新しいテーブルやカラムなどを生成するための処理を記述する部分です。
デフォルトでidカラムとタイムスタンプの2つが既に記述されているので、その書き方にしたがって、追加したいカラムを記述していきます。

・新規登録時

作成日時_create_menus_table.php
public function up()
{
    Schema::create('menus', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('menu_name');
        $table->timestamps();
    });
}

・カラム追加時

作成日時_menus_add_columns.php
public function up()
{
    Schema::table('menus', function (Blueprint $table) {
        $table->bigInteger("user_id")->unsigned();
        $table->increment("time_require")->nullable();
    });
}

※ ->unsigned( )は、マイナス値を除く場合、->nullable( )は、必須ではない場合に記述します。

#downメソッド
テーブルを削除するための処理を記述する部分で、rollbackを実行したときに走る用として書きます。
downメソッドは新規登録の場面では既に記述されていますが、カラムの追加や削除を行うときはdownメソッドにも記述する必要があります。
記述の仕方は簡単で、upメソッドに記述したカラムに対応したdropColumnを記述するだけです。

・新規登録時

作成日時_create_menus_table.php
public function down()
{
    Schema::dropIfExists('menus');
}

・カラム追加時

作成日時_menus_add_columns.php
public function down()
{
   Schema::table('menus', function (Blueprint $table) 
   {
        $table->dropColumn("user_id");
        $table->dropColumn("time_require");
   });
}

#おわりに
この2つのメソッドがテーブル操作の基本になるので、しっかり理解しておきましょう。

2
1
0

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?