はじめに
こんにちは、未経験からエンジニア転職を目指しているものです。オンラインスクールで本格的に学習して6ヶ月目に入りました。PHPとLaravelを学習しながらポートフォリオを作成中です。ポートフォリオ作成が順調に進むように、PHPとLaravelの疑問点について整理しようと思います。今回は、マイグレーションとモデルについて気になった部分をまとめてみました。
概要
Laravelのマイグレーション機能を使うと、データベースのテーブル作成や更新をコードで管理できます。マイグレーションファイルにはデータベースの「設計図」が書かれており、migrate
コマンドを実行することで、実際にデータベースがその設計図通りに作成されます。
しかし、不要なマイグレーションファイルが残ったままになると、意図しないテーブルが再度作成されるなどの問題が発生します。これを防ぐため、適切にマイグレーションファイルを管理することが重要です。
具体例
-
マイグレーションファイルを作成する
例えば、tests
というテーブルを作るためのマイグレーションファイルを作成します。このファイルには、テーブルを作成するための手順が記載されています。 -
マイグレートを実行する
sail artisan migrate
コマンドを使うと、マイグレーションファイルに基づいてデータベースにテーブルが作成されます。 -
不要なマイグレーションファイルが残っているとどうなる?
一度削除したいtests
テーブルがあるとします。しかし、マイグレーションファイルが残っている場合、再度マイグレートを実行するとまたtests
テーブルが作成されてしまいます。 -
問題点まとめ
-
データベースが意図しない状態に戻る
作成したテーブルを削除したいのに、マイグレーションファイルが残っているため、何度もテーブルが作成される可能性があります。 -
データが無駄に増える
不要なテーブルが作成され続けると、データベースが複雑化して管理が難しくなります。
-
データベースが意図しない状態に戻る
-
解決方法
-
不要なマイグレーションファイルを削除する
例えば、tests
テーブルのマイグレーションファイルが不要であれば、database/migrations
フォルダから削除しましょう。 -
sail artisan migrate:reset
コマンドで全てをリセットして再実行する
reset
コマンドを使うと、全てのマイグレーションが取り消され、データベースが最初の状態に戻ります。その後、必要なものだけ再度マイグレートすることで、意図しないテーブル作成を防げます。
-
不要なマイグレーションファイルを削除する
まとめ
- マイグレーションファイルはデータベースの設計図であり、コードでデータベース管理を行う上でとても重要。
- 不要なマイグレーションファイルが残っていると、意図しないテーブルが作成される恐れがあるので、適切に管理する。
- 必要に応じて、
migrate:reset
やmigrate:refresh
などのコマンドを活用することで、データベースの状態をリセットし、再度マイグレートを実行できる。
最後までご視聴頂き、ありがとうございます!