【Laravel】データベースを元に戻す・削除する方法|マイグレーションのロールバックなど

PHPフレームワークのLaravelでは、データベースのテーブルの作成・削除などができ、データベースのバージョン管理が行えるマイグレーションという機能があります。

今回は、Laravelのマイグレーションで作成・更新したテーブルを、マイグレーションのロールバック(取り消し)などによって、元に戻す・削除する方法となります。

また、マイグレーションファイルを作成する方法については、以下のリンク先を参考にしてみてください。

マイグレーション済みのファイルを確認する方法

マイグレーションは、マイグレーションファイルを作成して行いますが、以下のコマンドではマイグレーション済みのファイルや、実行した順番などを確認できます。

php artisan migrate:status

上記コマンドで表示されるbatchの項目がマイグレーションを実行した順番となり、マイグレーションのロールバックは、batchの値が大きい方から行われます。

また、マイグレーション済みファイルを修正して、もう一度マイグレーションするには、実行したマイグレーションを元に戻す(ロールバック)する必要があります。

マイグレーションを元に戻す(ロールバック)の方法

マイグレーションのロールバックは、マイグレーションファイル内のdown()メソッドを実行する処理となり、以下のコマンドで行います。

最後に実行したマイグレーションをロールバック

以下のコマンドでは、最後に実行したマイグレーションのロールバックを行います。

php artisan migrate:rollback

回数を指定しマイグレーションをロールバック

以下のコマンドでは、最後に実行したマイグレーションから、回数を指定してロールバックを行います。

ロールバックの回数は、オプションの--step= の後に指定します。

php artisan migrate:rollback --step=5

上記例の場合、最後に実行したマイグレーションから5回、ロールバックを行います。

すべてのマイグレーションをロールバック

以下のコマンドでは、すべてのマイグレーションのロールバックを行います。

php artisan migrate:reset

すべてのマイグレーションをロールバック後に、マイグレーションを実行

以下のコマンドでは、すべてのマイグレーションのロールバック(取り消し)後に、マイグレーションを実行します。

php artisan migrate:refresh 

すべてのテーブルを削除後に、マイグレーションを実行

以下のコマンドでは、すべてのテーブルを削除後にマイグレーションを実行します。

php artisan migrate:fresh

また、すべてのテーブルを削除後にマイグレーションを実行する際に、テーブルに初期値やダミーレコードをセットできるシーディングを実行する場合は、以下のコマンドとなります。

php artisan migrate:fresh --seed

シーディングについては、以下のリンク先を参考にしてみてください。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。