カテゴリ: Laravel 更新日: 2026/04/07

Laravelで既存のDBからマイグレーションを生成する方法!初心者向け解説

Laravelで既存のDBからマイグレーションを生成する方法(外部ツール紹介)
Laravelで既存のDBからマイグレーションを生成する方法(外部ツール紹介)

先生と生徒の会話形式で理解しよう

生徒

「先生、既にあるデータベースからLaravelのマイグレーションファイルを作ることはできますか?」

先生

「はい、できます。Laravel自体には直接既存DBからマイグレーションを作る機能はありませんが、外部ツールを使うことで自動生成が可能です。」

生徒

「外部ツールって具体的には何ですか?」

先生

「代表的なのはLaravel Migrations Generatorというツールです。これを使うと既存のデータベース構造を解析して、マイグレーションファイルを自動で作成できます。」

1. Laravel Migrations Generatorとは?導入のメリットを解説

1. Laravel Migrations Generatorとは?導入のメリットを解説
1. Laravel Migrations Generatorとは?導入のメリットを解説

Laravel Migrations Generatorは、既に存在するデータベース(MySQL、MariaDB、PostgreSQL、SQL Serverなど)のテーブル構造を読み取り、自動でLaravel用のマイグレーションファイルへと変換してくれる非常に便利な拡張パッケージ(ライブラリ)です。

通常、Laravelでデータベースを管理する場合、PHPで「設計図」にあたるマイグレーションファイルをゼロから手書きする必要があります。しかし、このツールを使えば、既存のシステムをLaravelへ移行する際や、GUIツール(phpMyAdminなど)で先にテーブルを作ってしまった場合でも、一瞬でコード化できます。これにより、手作業によるタイピングミスや、データ型の指定ミスを劇的に減らすことが可能です。

インストールには、PHPのライブラリ管理ツールである「Composer」を使用します。以下のコマンドをターミナル(Mac)やコマンドプロンプト(Windows)で実行しましょう。


composer require --dev "kitloong/laravel-migrations-generator"

実行後、以下のような完了メッセージが表示されれば、あなたのLaravelプロジェクトに「自動生成機能」が追加されたことになります。


Using version ^7.0 for kitloong/laravel-migrations-generator
./composer.json has been updated
Running composer update kitloong/laravel-migrations-generator
...
Package operations: 1 install, 0 updates, 0 removals
  - Installing kitloong/laravel-migrations-generator (v7.0.0): Extracting archive
Generating optimized autoload files

これで準備は完了です。このパッケージは「開発環境(--dev)」でのみ使用する設定でインストールしているため、本番環境の動作を重くすることもなく、安全に導入できるのが特徴です。

2. マイグレーションの自動生成手順:既存データベースをLaravelへ同期

2. マイグレーションの自動生成手順:既存データベースをLaravelへ同期
2. マイグレーションの自動生成手順:既存データベースをLaravelへ同期

パッケージの準備が整ったら、いよいよArtisan(アーティザン)コマンドを使って、データベースの構造をPHPファイルとして書き出します。Artisanとは、Laravelに標準装備されている「秘書」のようなツールで、複雑な処理をコマンド一つで代行してくれます。

プログラミング未経験の方でも、以下の手順に従うだけで、数秒でマイグレーションファイルが自動生成されます。まずは、ターミナル(コマンドプロンプト)でプロジェクトのルートディレクトリに移動し、以下の魔法の言葉を入力しましょう。


php artisan migrate:generate

このコマンドを実行すると、システムが現在のデータベースをスキャンし、テーブルごとに「いつ、どんなデータ型で作られたか」を記録したファイルを作成します。実行に成功すると、画面には以下のような結果が表示されます。


Do you want to log these migrations in the migrations table? (yes/no) [yes]:
 > yes
Migration created: 2026_02_02_000001_create_users_table.php
Migration created: 2026_02_02_000002_create_posts_table.php
Successfully created migrations!

生成されたファイルは database/migrations フォルダ内に保存されます。例えば「商品一覧(products)」というテーブルがあれば、create_products_table.php という名前で自動作成されます。これにより、手動で一つずつコードを書く手間が省けるだけでなく、記述ミスによるエラーも防ぐことができるのです。

ヒント: もし特定のテーブル(例えば users テーブル)だけを抽出したい場合は、--tables="users" というオプションを後ろに付けることで、必要な部分だけをピンポイントで生成することも可能です。状況に合わせて使い分けてみましょう。

3. 外部キーやインデックスの生成も対応

3. 外部キーやインデックスの生成も対応
3. 外部キーやインデックスの生成も対応

Laravel Migrations Generatorは、単純なカラムだけでなく、外部キー制約やインデックス情報もマイグレーションに反映します。これにより、生成されたマイグレーションをそのままプロジェクトに適用でき、手作業で修正する手間が少なくなります。

4. 注意点と補足

4. 注意点と補足
4. 注意点と補足

既存のデータベースからマイグレーションを生成する際は、以下の点に注意してください。

  • 生成されるマイグレーションは既存テーブルの構造をそのまま反映するため、Laravel独自の命名規則や型の変換が必要な場合があります。
  • 本番環境のデータベースに直接適用する前に、必ず開発環境で確認してください。
  • 複雑なリレーションや特殊なデータ型がある場合は、手作業で調整することをおすすめします。

5. まとめ的なポイント

5. まとめ的なポイント
5. まとめ的なポイント

Laravelで既存のデータベースからマイグレーションを生成するには、外部ツールのLaravel Migrations Generatorが便利です。インストール後、php artisan migrate:generateを実行するだけで、テーブル構造や外部キー、インデックスを含むマイグレーションファイルを自動で作成できます。これにより、手作業のミスを減らし、効率的にLaravelプロジェクトを構築することが可能です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.2
Java&Spring記事人気No2
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.3
Java&Spring記事人気No3
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.4
Java&Spring記事人気No4
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.5
Java&Spring記事人気No5
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterでファイルアップロードとストレージ管理をマスター!初心者向け完全ガイド