bambamboole / laravel-mermaid-erd
This is my package laravel-mermaid-erd
Package info
github.com/bambamboole/laravel-mermaid-erd
pkg:composer/bambamboole/laravel-mermaid-erd
Fund package maintenance!
Requires
- php: ^8.3
- illuminate/contracts: ^11.0||^12.0
- laravel/prompts: ^0.1||^0.2||^0.3
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1
- orchestra/testbench: ^10.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
This package is auto-updated.
Last update: 2026-03-18 15:30:30 UTC
README
Generate Entity-Relationship Diagrams (ERDs) from your Laravel database schema using Mermaid.js. Visualize tables, columns, and foreign key relationships with a single Artisan command.
Installation
composer require bambamboole/laravel-mermaid-erd
Optionally publish the config file to customize which tables are ignored:
php artisan vendor:publish --tag="laravel-mermaid-erd-config"
Usage
php artisan generate:mermaid-erd
When run without options, the command will interactively ask how you want to output the diagram.
Output modes
Print to stdout
php artisan generate:mermaid-erd --output=stdout
Prints the Mermaid ERD diagram directly to the console.
Write to a file
php artisan generate:mermaid-erd --output=file --path=README.md
Writes the diagram to the specified file (defaults to README.md). The file output uses <!-- mermaid-erd-start --> / <!-- mermaid-erd-end --> comment tags:
- File has tags: replaces content between the tags
- File exists without tags: appends an
## ERDsection with the diagram - File doesn't exist: creates it with the diagram
Add these tags where you want the diagram to appear:
<!-- mermaid-erd-start --> <!-- mermaid-erd-end -->
Options
--connection
Use a specific database connection instead of the default:
php artisan generate:mermaid-erd --output=stdout --connection=mysql
--tables
Only include specific tables (comma-separated):
php artisan generate:mermaid-erd --output=stdout --tables=users,posts,comments
Configuration
The config file allows you to ignore specific tables:
return [ 'ignore_tables' => [ 'migrations', 'failed_jobs', 'sessions', // ... ], ];
Smart relationship detection
The generator automatically detects pivot tables (tables with exactly 2 foreign keys and only id/timestamp columns) and renders them as many-to-many relationships instead of separate entities. Foreign key columns with unique indexes are rendered as one-to-one relationships.
ERD
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.