A CLI tool that automatically generates Entity-Relationship Diagrams (ERD) for Laravel applications using model analysis.
npm install @priom7/laravel2erd
Or use it directly with npx
:
npx @priom7/laravel2erd
- 📊 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
npx laravel2erd
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
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 |
Laravel2ERD performs static analysis on your Laravel model files to extract:
- Table structure: Names, columns, and types
- Attributes: From
fillable
arrays andcasts
- Relationships: Using Eloquent methods like
hasOne
,belongsTo
, etc.
It then compiles this information into a clean Mermaid.js diagram rendered in a browser interface.
// 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.
Licensed under the MIT License.
Made with ❤️ by @priom7
🌟 If you find this package useful, please consider starring the repo to show your support!