【PHP】Laravelでテーブルにカラムを追加する方法
こんにちは!CODE CLUB965のKです!
今回は、Laravelで既存のテーブルにカラムを追加する方法を書きたいと思います。
migrationファイルの作成
まずは、migrationファイルを作成します。
以下は、usersテーブルにaddressというカラムを追加したい場合を考えます。
マイグレーションファイルを作成するのに以下のコマンドを叩きます。
php artisan make:migration add_column_address_to_users --table=users
・「add_column_address_to_users」:マイグレーションファイルの名前(任意の名前を指定)
・「--table=users」:カラムを追加するテーブル名を指定
これで、マイグレーションファイルが作成されます。
migrationファイルに記述する
作成されたファイルは以下のようになっています。
class AddColumnAddressToUsers extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
簡単に説明すると、
up()には、マイグレーションを実行した際の処理(カラム追加)の記述をします。
down()には、up()の処理でを取り消す処理を記述します(追加したカラムを削除)。
上の例で実際に記述すると以下のようになります。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddColumnAddressToUsers extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('address')->comment('住所');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('address');
});
}
}
up()の中の記述の「$table->string('address')->comment('住所');」の「->comment()」はカラムにコメントしています。(MySQLを使用している場合)
ただこの記述はなくて問題ないです。
個人的に分かりやすいので書いています。
migrationを実行する
以下のコマンドを叩いて実行すればカラムが追加されます。
php artisan migrate
逆にロールバックしたい場合は、
php artisan migrate:rollback
でできます。
最後に
既存のテーブルにカラムを追加したい場合は、今回の手順でやってもらえればできるので参考にしてみて下さい。
基本的にはmigrationファイルにはup()と、down()の両方を記述することを覚えておきましょう!
それでは、また!