Laravel Newsで紹介されていましたが、Laravelのサードパーティパッケージである「recca0120/laravel-erd」を使って、LaravelプロジェクトのモデルからERDを自動作成できます。
Just a moment...
GitHub - recca0120/laravel-erd: Laravel ERD automatically generates Entity-Relationship Diagrams from your Laravel models and displays them using erd-editor.
Laravel ERD automatically generates Entity-Relationship Diagrams from your Laravel models and displays them using erd-ed...
前提条件
- Laravel11を使っていきます(laravel-erdの対応バージョンは8以降)
- PHP8.3を使っていきます(laravel-erdの対応バージョンは7.4以降)
- Ubuntuで作業していきます
- DBはデフォルトのSQLiteを使っていきます
- Composerインストール済
これからやること
- Laravel新規プロジェクト作成
- laravel-erdインストール
- ERD作成
- ビルトインサーバー起動
- ERD表示確認
Laravel新規プロジェクト作成
新規プロジェクト「laravel-erd」を作成していきます。
composer create-project laravel/laravel:^11 laravel-erd

laravel-erd インストール
プロジェクトフォルダに入ってから laravel-erd をインストールします。
cd laravel-erd
composer require recca0120/laravel-erd:^0.1 --dev

ERD作成
次のコマンドでERDを作成します。
php artisan erd:generate

ビルトインサーバー起動
次のコマンドでビルトインサーバーを起動します。
php artisan serve

ERD表示
WEBブラウザで http://localhost:8000/laravel-erd/ にアクセスします。

このように表示されます。
デフォルトで有効なモデルは User だけなのでこれだけですが、
以前の記事で作成したものを使ってみるとこのようになります。

ちょっと見づらいので、「notifications」と「users」を除外したERDを作成してみます。
次のコマンドで「–excludes=」オプションで除外テーブル名をカンマ区切りで羅列します。
php artisan erd:generate --excludes=users,notifications
WEBブラウザをリロードすると表示が更新されます。

ちなみに、各エンティティをマウスでドラッグすることで位置を移動できます。
SVG出力
次のコマンドで erd-go と graphviz-dot.js をインストールします。
sudo php artisan erd:install
※ダウンロード途中で「cURL error 18: transfer closed with …」のようなエラーが出たら、次のコマンドでpostBufferの上限値を上げてリトライしてください。
git config --global http.postBuffer 524288000
続いてSVGを生成します。
php artisan erd:generate --file=laravel-erd.svg
WEBブラウザで http://localhost:8000/laravel-erd/laravel-erd.svg にアクセスします。

以上です。
- 0
- 0
- 0
- 0



コメント