マイグレーションとデータベースのバージョン管理

Laravel講座

データベースは多くのWebアプリケーションにとって不可欠な要素です。アプリケーションの機能を拡張したり、データベーススキーマを変更したりする際に、データベースのバージョン管理が重要になります。Laravelでは、マイグレーションと呼ばれる仕組みを使ってデータベースの変更を管理します。この記事では、Laravelにおけるマイグレーションとデータベースのバージョン管理の基本的な使い方について解説します。

マイグレーションとは?

マイグレーションは、データベースのスキーマをバージョン管理するためのLaravelの機能です。これにより、アプリケーションの開発が進むにつれて、データベーススキーマの変更を追跡し、管理することが容易になります。マイグレーションファイルは、データベーステーブルの作成、カラムの追加、削除などの変更を記述します。

マイグレーションは、バージョン管理ツールのように動作します。各マイグレーションファイルにはタイムスタンプが含まれ、実行された順番によってデータベーススキーマが更新されます。

マイグレーションファイルの作成

マイグレーションファイルを作成するには、php artisan make:migrationコマンドを使用します。コマンド実行時にマイグレーションの名前を指定することができます。例えば、create_users_tableという名前のマイグレーションファイルを作成するには、以下のようにします。

php artisan make:migration create_users_table
PHP

マイグレーションファイルは、database/migrationsディレクトリに作成されます。作成されたマイグレーションファイルには、upメソッドとdownメソッドが含まれています。

マイグレーションの実行

マイグレーションファイルを作成した後は、実際にデータベースに変更を適用するためにマイグレーションを実行します。マイグレーションを実行するには、php artisan migrateコマンドを使用します。

php artisan migrate
PHP

このコマンドを実行すると、database/migrationsディレクトリ内のマイグレーションファイルが順番に実行され、データベーススキーマが更新されます。また、マイグレーションの実行履歴がmigrationsテーブルに記録されるため、二重にマイグレーションが実行されることはありません。

ロールバック

マイグレーションのロールバックは、データベースの変更を取り消すために使用されます。例えば、誤ってテーブルを削除してしまった場合などにロールバックを行い、前の状態に戻すことができます。

ロールバックを行うには、php artisan migrate:rollbackコマンドを使用します。

php artisan migrate:rollback
PHP

このコマンドを実行すると、直近に実行されたマイグレーションが取り消され、データベースが前の状態に戻ります。

ステータスの確認

現在のマイグレーションのステータスを確認するには、php artisan migrate:statusコマンドを使用します。

php artisan migrate:status
PHP

このコマンドを実行すると、適用されているマイグレーションと未適用のマイグレーションの一覧が表示されます。ステータスを確認することで、どのマイグレーションが実行済みであり、どのマイグレーションがまだ適用されていないかを把握することができます。

まとめ

マイグレーションは、Laravelのデータベース操作における重要な要素です。データベースのバージョン管理を行うことで、アプリケーションの変更やアップデートがスムーズに行えるようになります。Laravelのマイグレーション機能を活用して、安全で効率的なデータベースの管理を行いましょう。

役にたったと思ったら応援をお願いします m(._.)m

著者

Webエンジニア歴30年、フリーランスバックエンドエンジニア。

PHP歴約30年(Laravel 7年・FuelPHP 5年・CakePHP・自作FW)、
JavaScript歴約20年(React・Vue各4年)。
AWS(EC2 / CloudFront / RDS / API Gateway など)・
GCP(BigQuery)を使ったバックエンド開発を中心に、
複数の事業会社・受託案件でシステム設計から実装・運用まで担当しています。

PHPがバージョン4の時代から書いており、
Laravelが普及する前のフレームワーク乱立期も経験しています。
「昔はこう書いていたが今はこう」という変遷を肌で知っているエンジニアとして、
単なるコマンドの使い方だけでなく、なぜそうするのかの背景まで伝えることを意識して書いています。

このブログでは、実務で実際に詰まった箇所・調べたこと・気づいたことを
そのまま記事にしています。誰かの「詰まり」が解決するきっかけになれば幸いです。

千原 耕司をフォローする

役にたったと思ったら応援をお願いします m(._.)m

Laravel講座データベース操作
スポンサーリンク
シェアする
千原 耕司をフォローする
タイトルとURLをコピーしました