#はじめに
今回は、マイグレーションファイルを作成したときに記述されている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つのメソッドがテーブル操作の基本になるので、しっかり理解しておきましょう。