【Laravel】マイグレーションを使ってみる

マイグレーションとは、稼働中のシステムやデータに影響を与えないように、テーブル追加・変更・削除などを行うことをいいます。
稼働中ではなくても、コマンドを1つ実行するだけでDBの構築ができるため、複数人で開発を行う際にそれぞれのローカル環境の構築がスムーズになります。
目次
開発環境
- OS:Windows11
- Docker Desktopインストール済み
- VSCodeインストール済み
前提
- Docker上のappコンテナにLaravelがインストールされている
- Docker上のdbコンテナにMySQLがインストールされている
詳細な環境は下記の記事をご参照ください。
今回はDocker環境で実施しますが、ローカルに直接インストールしている方も参考になると思います。
マイグレーションファイルを作成する
ターミナルを表示する
メニューの表示から、ターミナルを開きます。
ショートカットキーはCtrl + @なので、覚えておくと便利です。

appコンテナに入る
下記のコマンドを実行して、appコンテナに入ります。
docker compose exec app bash

コマンドでマイグレーションファイルを作成する
下記のコマンドを実行して、マイグレーションファイルを作成します。
php artisan make:migration m_department
コマンドが成功すると、yyyy_mm_dd_hhmmss_m_department.phpという名前のファイル名が生成されます。
ちなみに、マイグレーションファイルはテーブルごとに分ける流派と、一つのファイルに複数のテーブルを記載する流派があります。
後者の場合はファイル名もそれっぽく変えてあげましょう。

なお、デフォルトで以下の4ファイルが最初から用意されていますが、削除しても問題ありません。
- 2014_10_12_000000_create_users_table.php
- 2014_10_12_100000_create_password_resets_table.php
- 2019_08_19_000000_create_failed_jobs_table.php
- 2019_12_14_000001_create_personal_access_tokens_table.php
マイグレーションファイルを編集する
2か所にコードを記載します。
①upメソッド
記載する内容はLaravel風のCREATE TABLEです。
Schema::create("m_department", function (Blueprint $table) {
$table->increments("id");
$table->string("name");
});
②downメソッド
ロールバック時に呼ばれるメソッドです。
Schema::dropIfExists("m_department");

マイグレーションを実行する
マイグレーションを実行する
下記のコマンドを実行して、マイグレーションを実行します。
php artisan migrate
対象のファイルがDONEになっていればOKです。

マイグレーションの実行状況を確認する
下記のコマンドを実行して、マイグレーションの実行状況を確認します。
php artisan migrate:status
対象のマイグレーションがRanになっていればOKです。

テーブルが作成されているか確認する
DBビューアーでテーブルが作成されていることを確認します。
テーブル名、カラム名、データ型などが意図したとおりに作成されていると思います。
コマンドで確認しても大丈夫ですが、私はMySQL Workbenchを使っています。

以上になります。
お疲れさまでした。
“【Laravel】マイグレーションを使ってみる” に対して1件のコメントがあります。
コメントは受け付けていません。