MongoViz is a command-line tool designed to generate Entity-Relationship Diagrams (ERD) from Mongoose models in your Node.js applications. It helps visualize the relationships between the database schemas defined in your MongoDB using Mongoose.
- Supports various output formats including SVG, DOT, JSON, and more.
- Configurable options for ignoring files, setting colors, and specifying output paths.
- Easy-to-use command line interface.
- Free and open source.
MongoViz is available as a global npm package. You can install it using npm:
npm install mongoviz -g
Once installed, you can run mongoviz from the command line with several options to customize the output.
-V, --version Output the version number of MongoViz
-p, --path <path> Set the path to the directory containing your Mongoose models
-o, --output <path> Set the path and filename for the output ERD
-i, --ignore-index Ignore any files named 'index.js'
-f, --format [format] Specify the output format (svg, dot, xdot, plain, plain-ext, ps, ps2, json, json0)
-c, --color <color> Specify the background color for collections in the diagram
-h, --help Display help for command
Generating an SVG ERD
mongoviz -p ./path_to_models_folder/ -f svg -o ./output_folder/erd.svg
mongoviz -p ./path_to_models_folder/ -f dot -o ./output_folder/erd.dot
For MAC and Linux users:
mongoviz -p ./path_to_models_folder/ -f svg -o ./erd.svg
For Windows users:
mongoviz -p .\path_to_models_folder\ -f svg -o .\erd.svg
Contributions to MongoViz are welcome! Feel free to fork the repository, make changes, and submit pull requests. You can contribute in several ways:
- Add new features
- Improve the documentation
- Fix bugs and issues
- Suggest enhancements
The project is organized as follows:
mongoviz/
├── bin/
│ └── mongoviz.js # Entry point for the CLI
├── src/
│ ├── lib/
│ │ ├── ERD.js # Core ERD generation logic
│ │ └── DS.js # Definitions for ERD and Collection classes
│ └── utils/
│ └── parseModel.js # Utility to parse mongoose models
├── models/ # Sample directory for Mongoose models
│ └── user.js # Example Mongoose model
├── output/ # Output directory for generated ERDs
├── package.json
└── README.md
MongoViz is released under the MIT License. See the LICENSE file for more details.
Thanks to https://github.com/jodevsa/mongoose-erd-generator for the inspiration behind this project.