Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dicklesworthstone/sqlalchemy_data_model_visualizer
Automatically turn your SQLalchemy Data Models into a Nice SVG Diagram
https://github.com/dicklesworthstone/sqlalchemy_data_model_visualizer
datamodel orm orm-model schema sqlalchemy visualization
Last synced: 1 day ago
JSON representation
Automatically turn your SQLalchemy Data Models into a Nice SVG Diagram
- Host: GitHub
- URL: https://github.com/dicklesworthstone/sqlalchemy_data_model_visualizer
- Owner: Dicklesworthstone
- License: mit
- Created: 2023-10-27T20:31:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-13T15:28:09.000Z (9 months ago)
- Last Synced: 2025-01-04T08:27:44.644Z (9 days ago)
- Topics: datamodel, orm, orm-model, schema, sqlalchemy, visualization
- Language: Python
- Homepage:
- Size: 57.6 KB
- Stars: 251
- Watchers: 2
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SQLAlchemy Data Model Visualizer
## Overview
This Python-based utility generates high-quality, readable visualizations of your SQLAlchemy ORM models with almost no effort. With a focus on clarity and detail, it uses Graphviz to render each model as a directed graph, making it easier to understand the relationships between tables in your database schema.
![Example Data Model Diagram](https://raw.githubusercontent.com/Dicklesworthstone/sqlalchemy_data_model_visualizer/main/my_interactive_data_model_diagram.svg)
## Try it Out Easily in Colab:
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1np5kPvDtdhq138eLHOGINYuTUMJo_wrj?usp=sharing)
## Features
- Automatically maps SQLAlchemy ORM models to a directed graph.
- Table-like representation of each model with fields, types, and constraints.
- Export diagrams to SVG format for high-quality viewing and printing using Roboto font.## Installation with pip and Usage:
```bash
pip install sqlalchemy-data-model-visualizer# Suppose these are your SQLAlchemy data models defined above in the usual way, or imported from another file:
models = [GenericUser, Customer, ContentCreator, UserSession, FileStorage, ServiceRequest, GenericAuditLog, GenericFeedback, GenericAPIKey, GenericNotification, GenericAPICreditLog, GenericSubscriptionType, GenericSubscription, GenericSubscriptionUsage, GenericBillingInfo]
output_file_name = 'my_data_model_diagram'
generate_data_model_diagram(models, output_file_name)
add_web_font_and_interactivity('my_data_model_diagram.svg', 'my_interactive_data_model_diagram.svg')
```## Installation from Source
To get started, clone the repository and install the required packages.
```bash
git clone https://github.com/Dicklesworthstone/sqlalchemy_data_model_visualizer.git
cd sqlalchemy_data_model_visualizer
python3 -m venv venv
source venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install wheel
pip install -r requirements.txt
```## Requirements
- Python 3.x
- SQLAlchemy
- Graphviz
- lxml## Usage
### Generate Data Model Diagram
First, paste in your SQLAlchemy models. A set of fairly complex data models are provided in the code directly as an example-- just replace these with your own from your application.
Then, simply call the `generate_data_model_diagram` function. This will generate an SVG file with the name `my_data_model_diagram.svg`.
## API Documentation
### `generate_data_model_diagram(models, output_file='my_data_model_diagram', add_labels=True)`
- `models`: List of SQLAlchemy models you want to visualize.
- `output_file`: Name of the output SVG file.
- `add_labels`: Set to False to hide labels on the edges between tables## Contributing
Contributions are welcome! Please open an issue or submit a pull request.
## License
This project is licensed under the MIT License.