Laravelのマイグレーションを実行・ロールバックするコマンド完全ガイド!初心者でもわかるデータベース操作
生徒
「Laravelでデータベースのテーブルってどうやって作るんですか?」
先生
「Laravelでは、マイグレーションという仕組みを使ってテーブルを作成できます。」
生徒
「マイグレーションって何ですか?難しそうです…」
先生
「簡単に言うと、データベースの設計図のようなものです。コマンドで作成や削除もできます。」
生徒
「間違えたときに元に戻せますか?」
先生
「もちろんです。ロールバックという機能で簡単に戻せますよ。」
1. Laravelのマイグレーションとは?
Laravelのマイグレーションとは、データベースの構造をコードで管理する仕組みです。テーブルの作成や変更をプログラムとして記録することで、誰でも同じデータベース構造を再現できるようになります。
例えば、ノートに設計図を書いておけば、後から見ても同じ家を建てられるのと同じように、マイグレーションを使うことでデータベースの状態を簡単に再現できます。
2. マイグレーションを実行するコマンド
Laravelでマイグレーションを実行する基本コマンドは次の通りです。
php artisan migrate
このコマンドを実行すると、まだ実行されていないマイグレーションファイルが順番に実行され、データベースにテーブルが作成されます。
初心者の方は「migrate」という言葉に戸惑うかもしれませんが、これは「移行する」という意味です。つまり、設計図をもとにデータベースへ反映する操作です。
3. マイグレーションの状態を確認する
どのマイグレーションが実行されているか確認したい場合は、次のコマンドを使います。
php artisan migrate:status
このコマンドを実行すると、実行済みか未実行かが一覧で表示されます。チェックマークのような表示で判断できるため、初心者でも安心です。
データベースの状態を把握することはとても重要です。特にチーム開発では、誰がどこまで作業したのか確認するために使われます。
4. ロールバックとは?元に戻す仕組み
ロールバックとは、直前に実行したマイグレーションを取り消す操作のことです。
例えば、テーブルを作ったけれど間違いに気づいた場合、その変更を元に戻すことができます。
php artisan migrate:rollback
このコマンドを実行すると、最後に実行したマイグレーションが取り消されます。
イメージとしては「一つ前の状態に戻るボタン」です。初心者でも安心して操作できる仕組みになっています。
5. 指定回数だけロールバックする方法
複数回分のマイグレーションをまとめて戻したい場合は、stepオプションを使います。
php artisan migrate:rollback --step=2
この例では、直近2回分のマイグレーションを取り消します。
stepとは「段階」という意味で、どこまで戻すかを指定できます。大きな変更をした後に一気に戻したいときに便利です。
6. すべてのマイグレーションをリセットする
すべてのマイグレーションを取り消して、最初の状態に戻すには次のコマンドを使います。
php artisan migrate:reset
このコマンドは、すべてのテーブルを削除するようなイメージです。
開発中のテストや、やり直したいときによく使われます。
7. リフレッシュで再作成する
マイグレーションをすべて削除してから、再度実行したい場合は次のコマンドを使います。
php artisan migrate:refresh
このコマンドは「全削除してから再作成」という動きを一度に行います。
データベースの状態をきれいに整えたいときに便利です。
8. 完全に作り直すfreshコマンド
さらに強力なコマンドとして、freshがあります。
php artisan migrate:fresh
このコマンドは、すべてのテーブルを削除してからマイグレーションを実行します。
refreshとの違いは、よりシンプルに完全リセットできる点です。開発初期やテスト環境でよく使われます。
9. よくあるエラーと対処法
初心者がつまずきやすいポイントとして、データベース接続エラーがあります。
これは.envファイルの設定ミスが原因であることが多いです。
例えば、データベース名やパスワードが間違っていると、マイグレーションは実行できません。
また、すでに同じテーブルが存在する場合もエラーになります。この場合はrollbackやfreshを使って調整しましょう。