laravelのマイグレーションファイル、削除していい場合とまずい場合。

[st-kaiwa3 r]Laravelのマイグレーションで間違えたファイルとかってどうやって削除するの?そのまま削除しちゃって大丈夫なの?[/st-kaiwa3]

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にログインして、手動で削除する必要があります。

[st-kaiwa3 r]ロールバックって何?[/st-kaiwa3]

[st-kaiwa1 r]

ロールバックは、前回のマイグレーション時点の状態にデータベースのテーブルとカラムを戻す事。

例えば、countカラムを今回のマイグレーションで追加したけど、やっぱこのカラム使わないから、一つ前のマイグレーションした時の状態に戻したいって場合は、ロールバックを使う事で元に戻せるようになってるんだ。(ロールバックする事で、countカラムがデータベースから消えるって事)。

ただ、ロールバックは手動でマイグレーションファイルを削除したり、記述を後から変更してる場合、正しく動かず、前回のマイグレーション時点に戻すはずが、前前前回の状態に戻っちゃった(必要なカラムがデータごと消えた)なんて事もありうるから、よく分からない状態で絶対に使わない方がいいよ。

一人で作業してる場合は、マイグレーションファイルを手動で削除、そしてphpMyAdminからカラムを手動で削除でも、同じ事はできるからね。

[/st-kaiwa1]

LaravelのMigrationでカラムを追加、編集、削除のやり方。初心者でもよく分かるように解説!

正しい内容の過去のマイグレーションファイルは削除すべきではない

正しい内容が書かれた、過去のマイグレーション済みファイル達は、削除せず取っておくべき(GITなどでバックアップしておくべき)です。

というのも、例えばデータベースを間違えて削除してしまったとか、新しいデータベースに同じテーブルやカラムをコピーしたい場合、過去のマイグレーションファイルでphp artisan migrate すれば、データベース上のテーブルやカラムを現在の状態まで一発で戻せるからです。

[st-kaiwa1 r]

例えば、PC上でサイトを作ってるとする。それをサーバーにデプロイ(アップロード)する際、この過去のマイグレーションファイル達がサーバーのMySQLデータベースに全く同じテーブルやカラムを作ってくれるわけ。

だから削除しちゃったら、サーバー側のデータベースのテーブルとカラムを全部手動で作り直すはめになるから、削除しちゃダメだよ。

[/st-kaiwa1]

LaravelのMigrationとは?初心者でも図解で面白いほどよく分かる!

最初からデフォルトで入ってるマイグレーションファイルって削除しちゃっていいの?

[st-kaiwa3 r]Laravelインストール時に最初から入ってる日付がすごく昔の謎のマイグレーションファイルが3つくらいあるけど、これって削除しちゃっていいの?[/st-kaiwa3]

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のデフォルトログイン機能を使わない場合のみ、削除してしまっても大丈夫です。

[st-kaiwa3 r]えー、それ知らなくて、削除しちゃったんだけど。[/st-kaiwa3]

[st-kaiwa1 r]だったら、また新しいLaravelプロジェクトを作成(インストール)して、そこからコピーしてくれば問題ないよ。[/st-kaiwa1]

Laravelのバージョン指定インストールのやり方。超初心者でも必ずできるレベルで解説

シェアする

  • このエントリーをはてなブックマークに追加

フォローする