bambamboole/laravel-mermaid-erd

This is my package laravel-mermaid-erd

Maintainers

Package info

github.com/bambamboole/laravel-mermaid-erd

pkg:composer/bambamboole/laravel-mermaid-erd

Fund package maintenance!

bambamboole

Statistics

Installs: 1 343

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

0.3.3 2026-02-24 09:15 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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 ## ERD section 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.