Skip to content

Mapping-Apping/laravel2erd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel2ERD (V2 avaiable here: https://github.com/Priom7/laravel2doc)

npm npm downloads License: MIT Node.js Made with ❤️ by Priom7

A CLI tool that automatically generates Entity-Relationship Diagrams (ERD) for Laravel applications using model analysis.


📦 Installation

npm install @priom7/laravel2erd

Or use it directly with npx:

npx @priom7/laravel2erd

🚀 Features

  • 📊 Automatically analyze Laravel models to generate ERDs
  • 🔍 Detect table names, attributes, and data types
  • 🔄 Map relationships (One-to-One, One-to-Many, Many-to-Many)
  • 🖼️ Interactive web-based diagram viewer with zoom controls
  • 💾 Export diagrams as SVG for documentation

🖥️ Usage

Basic usage

npx laravel2erd

Custom options

npx laravel2erd \
  --output public/docs/erd \
  --models app/Models \
  --title "My Project ERD"

Once generated, you can view your ERD diagram in the browser at:

http://your-app-url/laravel2erd

⚙️ Options

Option Description Default
-o, --output Output directory for ERD public/laravel2erd
-m, --models Directory containing Laravel models app/Models
-r, --relations Include relationships between models true
-t, --title Title of the diagram Laravel ERD Diagram

🧠 How It Works

Laravel2ERD performs static analysis on your Laravel model files to extract:

  1. Table structure: Names, columns, and types
  2. Attributes: From fillable arrays and casts
  3. Relationships: Using Eloquent methods like hasOne, belongsTo, etc.

It then compiles this information into a clean Mermaid.js diagram rendered in a browser interface.


🖼️ Sample Output

Laravel2ERD Sample Output


📋 Example Model

// app/Models/User.php
class User extends Model
{
    protected $fillable = [
        'name', 'email', 'password',
    ];
    
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
    
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

🧩 This model will be visualized with all attributes and relationships in the ERD diagram.


📄 License

Licensed under the MIT License.


👤 Author

Made with ❤️ by @priom7


🌟 If you find this package useful, please consider starring the repo to show your support!

Releases

No releases published

Packages

No packages published