マイグレーションは何のためにありますか。
DB のスキーマ変更を PHP のコードとして書き、バージョン管理に載せるためのものです。本番への反映漏れを防ぎ、参画した人が migrate だけで同じ構造を再現できる状態を作ります。
面接官が見ているのはDB スキーマをコードで管理する発想があるか。
よくある答えと、面談でどう見られるか
- DB のスキーマ変更をコードとして残し、全環境で同じ手順を再現するため
その通りです。誰がどの環境に何を適用したかが履歴として残るのが本質です。 - 本番の DB データを開発環境にコピーするため
それはデータの複製です。マイグレーションが扱うのは構造(スキーマ)だけです。 - サーバーを移設するときにデータを移すため
一般的な語義と混ざっています。Laravel ではスキーマ変更の管理を指します。 - テスト用のダミーデータを投入するため
それは seeder の役割です。マイグレーションは構造、seeder は中身。
模範解答
DB のスキーマ変更を PHP のコードとして記述し、バージョン管理に載せるためのものです。「開発環境でカラムを足したが本番に反映し忘れた」を防げますし、新しく参画した人も migrate を流すだけで同じ構造を再現できます。本番では確認プロンプトが出るため php artisan migrate --force を使います。
対象: Laravel 12.x(13.x の変更点も確認) 照合した一次資料: 公式ドキュメント 照合: 2026-08-11 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。