はじめに
こんにちは!
エンジニアの matsuura です。
今回は、Laravelにおけるマイグレーションについて、紹介していきます。
特定のテーブルを変更するマイグレーションファイルの作成方法について解説します。
マイグレーションファイルの作成について
実行環境
今回は、以下の環境で実行確認しています。
使用する環境によってはバージョンの違いによる挙動の変化があるため、ご自身の環境と適宜照らし合わせてください。
- PHP: 8.2.23
- Laravel: 11.0.8
- データベース: MySQL 8.0
- Composer: 2.8.5
マイグレーションファイル作成コマンド
マイグレーションファイルを作成するには、php artisan make:migration
コマンドを使用します。
php artisan make:migration <説明> --table=<テーブル名>
例えば、hoge
テーブルに fuga
カラムを追加するマイグレーションを作成する場合、以下のようにコマンドを実行します。
php artisan make:migration add_fuga_to_hoge_table --table=hoge
このコマンドを実行すると、database/migrations
ディレクトリ内に新しいマイグレーションファイルが作成されます。
マイグレーションファイル編集
作成されたマイグレーションファイルを開くと、up
メソッドと down
メソッドが含まれています。
up
メソッドの編集
up
メソッドでは、新しいカラムを追加する処理を記述します。
public function up()
{
Schema::table('hoge', function (Blueprint $table) {
$table->string('fuga')->nullable()->after('exists_column');
});
}
down
メソッドの編集
down
メソッドでは、up
メソッドの変更を元に戻す処理を記述します。
public function down()
{
Schema::table('hoge', function (Blueprint $table) {
$table->dropColumn('fuga');
});
}
マイグレーションの実行
マイグレーションを適用するには、以下のコマンドを実行します。
php artisan migrate
逆に、マイグレーションを取り消したい場合は、以下のコマンドを使用します。
# 最後に実行したマイグレーションを取り消しいたい場合
php artisan migrate:rollback
# 全て取り消したい場合
php artisan migrate:reset
# 全て取り消した後、再度マイグレーション実行したい場合
php artisan migrate:refresh
# 全てのテーブルを削除した後、再度マイグレーション実行したい場合
php artisan migrate:fresh
マイグレーションの状態を確認したい場合は、以下のコマンドを使用します。
php artisan migrate:status
最後に
今回は、既存のテーブルを変更するマイグレーションファイルの作成方法について説明しました。
Laravelのマイグレーションを利用することで、データベースのスキーマ変更を簡単に管理できます。
ぜひ積極的に開発で利用し、効率的なデータベース管理に役立ててもらえたらと思います。
エンジニア募集
Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています!!
ぜひお気軽にカジュアル面談へお越しください!!