Laravelのマイグレーションファイル自体は、間違って作ってしまったファイルなどは、そのまま削除してしまって大丈夫です。PC上であれば、そのままゴミ箱にポイで大丈夫って事です。
ただ、正しい内容の過去のマイグレーション済みファイルは削除すべきではありません。
どんなパターンなら削除OKかと削除方法を解説します。
間違ったマイグレーションファイルなどは手動削除でOK
php artisan make:migration でマイグレーションファイルを作ったけど、まだphp artisan migrateしてないファイルの場合、
もしそのファイルがやっぱり不要だったり、間違えた内容だから削除したい場合は、そのまま普通にファイルを削除してしまって問題ありません。PCならゴミ箱にポイでOKです。
php artisan make:migration でマイグレーションファイルを作って、すでにphp artisan migrate済みのファイルの場合、
マイグレーションファイルはあくまで、php artisan migrate を一回すると、その時だけ作動して、データベースにテーブルとカラムを作成します。次のphp artisan migrate以降では作動しないようになってます。
なので、間違って作ってしまったマイグレーションファイルなどは、削除してしまっても問題ないんですが、
ロールバック(以前の状態に戻す)を使う時に、そのマイグレーションファイル時点には戻せなくなります。
ただ、その間違った内容にロールバックで戻す必要はないでしょうから、そのまま削除してしまえば問題ないです。
ただ、データベースにはmigrate済みのテーブルやカラムが残ってますから、それはphpMyAdminにログインして、手動で削除する必要があります。
ロールバックは、前回のマイグレーション時点の状態にデータベースのテーブルとカラムを戻す事。
例えば、countカラムを今回のマイグレーションで追加したけど、やっぱこのカラム使わないから、一つ前のマイグレーションした時の状態に戻したいって場合は、ロールバックを使う事で元に戻せるようになってるんだ。(ロールバックする事で、countカラムがデータベースから消えるって事)。
ただ、ロールバックは手動でマイグレーションファイルを削除したり、記述を後から変更してる場合、正しく動かず、前回のマイグレーション時点に戻すはずが、前前前回の状態に戻っちゃった(必要なカラムがデータごと消えた)なんて事もありうるから、よく分からない状態で絶対に使わない方がいいよ。
一人で作業してる場合は、マイグレーションファイルを手動で削除、そしてphpMyAdminからカラムを手動で削除でも、同じ事はできるからね。
→LaravelのMigrationでカラムを追加、編集、削除のやり方。初心者でもよく分かるように解説!
正しい内容の過去のマイグレーションファイルは削除すべきではない
正しい内容が書かれた、過去のマイグレーション済みファイル達は、削除せず取っておくべき(GITなどでバックアップしておくべき)です。
というのも、例えばデータベースを間違えて削除してしまったとか、新しいデータベースに同じテーブルやカラムをコピーしたい場合、過去のマイグレーションファイルでphp artisan migrate すれば、データベース上のテーブルやカラムを現在の状態まで一発で戻せるからです。
例えば、PC上でサイトを作ってるとする。それをサーバーにデプロイ(アップロード)する際、この過去のマイグレーションファイル達がサーバーのMySQLデータベースに全く同じテーブルやカラムを作ってくれるわけ。
だから削除しちゃったら、サーバー側のデータベースのテーブルとカラムを全部手動で作り直すはめになるから、削除しちゃダメだよ。
→LaravelのMigrationとは?初心者でも図解で面白いほどよく分かる!
最初からデフォルトで入ってるマイグレーションファイルって削除しちゃっていいの?
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
こういった名前のファイルがあなたのLaravelにもあるはずです。
これは、削除しちゃダメです。
なぜかというと、これは、ログイン機能をLaravelに実装する時に必要なマイグレーションファイルだからです。
- ログインユーザー情報を保存するテーブル
- ユーザーがパスワードリセットしたい時に使うテーブル
- エラーを保存するテーブル
がそれぞれこのマイグレーションファイル達によって生成されます。通常Laravelでサイトを作っていく際に必ず必要になる機能ですから、それらは削除しないでください。
実際にphp artisan migrateする際に一緒にマイグレーション(テーブル作成)されます。
自分のサイトにログイン機能を完全手動で実装するなど、Laravelのデフォルトログイン機能を使わない場合のみ、削除してしまっても大丈夫です。
→Laravelのバージョン指定インストールのやり方。超初心者でも必ずできるレベルで解説