PostgreSQL ER diagram generator with zero-overlap layouts
Project description
WizERD
WizERD is a PostgreSQL ER diagram generator that creates beautiful, readable diagrams with zero table overlap and minimal edge crossings.
Why WizERD?
Most ER diagram generators fail with large databases (100+ tables). They produce overlapping tables and "line messes" that are impossible to parse. WizERD prioritizes visual legibility over compactness, ensuring your diagrams remain navigable regardless of database size.
Features
- Zero Overlap — Tables never render on top of each other
- Smart Routing — Minimal relationship line crossovers
- 14 Built-in Themes — From dark mode to minimal
- Flexible Spacing — Compact, standard, or spacious layouts
- Column Details — Shows data types, PKs, and FKs
- Multiple Formats — SVG and PNG output
- Flexible Configuration — YAML, JSON, environment variables, or CLI flags
Quick Start
# Install
pip install wizerd
# Generate diagram
wizerd generate schema.sql -o diagram.svg
# Or with export features (PNG)
pip install wizerd[export]
wizerd generate schema.sql -o diagram.png
Installation
See the Installation Guide for detailed instructions.
Requirements
- Python 3.9+
- Node.js 18+ (for layout engine)
From PyPI
pip install wizerd
pip install wizerd[export] # For PNG/PDF output
From Source
git clone https://github.com/Pork0594/wizerd.git
cd wizerd
pip install -r requirements.txt
cd wizerd/layout && npm ci
Usage
Basic Usage
wizerd generate schema.sql -o diagram.svg
Themes
# List available themes
wizerd themes
# Use a different theme
wizerd generate schema.sql -o diagram.svg -t light
wizerd generate schema.sql -o diagram.svg -t dracula
Spacing Profiles
# Compact for small schemas
wizerd generate schema.sql -o diagram.svg -w compact
# Spacious for large schemas
wizerd generate schema.sql -o diagram.svg -w spacious
Show Foreign Key Labels
wizerd generate schema.sql -o diagram.svg --show-edge-labels
Color by Relationship Target
wizerd generate schema.sql -o diagram.svg --color-by-trunk
Configuration
Create a config file:
wizerd init
This creates .wizerd.yaml:
output: diagram.svg
theme: default-dark
show-edge-labels: false
spacing-profile: standard
color-by-trunk: false
See Configuration for full details.
Documentation
- Getting Started — Your first diagram
- Configuration — Customization options
- Themes — All 14 themes with previews
- Spacing Profiles — Layout controls
- Examples — Practical examples
- CLI Reference — Complete command reference
Example Schemas
WizERD includes example schemas:
| File | Tables | Description |
|---|---|---|
dev/dumps/examples/simple_schema.sql |
2 | Users and posts |
dev/dumps/examples/schema.sql |
20+ | Music streaming platform |
dev/dumps/examples/large_schema.sql |
50+ | Complex relationships |
Project Goals
- Parse large PostgreSQL schemas from dump files
- Build constraint-aware graph layouts optimized for clarity
- Render high-quality SVG diagrams suitable for documentation
License
MIT License — see LICENSE for details.
Contributing
Contributions welcome! Please open an issue or PR at https://github.com/Pork0594/wizerd
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wizerd-0.1.2.tar.gz.
File metadata
- Download URL: wizerd-0.1.2.tar.gz
- Upload date:
- Size: 59.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ceceb765473844ed7ccde16ba605f5f503a2fc9b07bd648e8c794c91cf06878
|
|
| MD5 |
34340bfa61bf2e682c54c7b73b6d76af
|
|
| BLAKE2b-256 |
efd2a8d902bbc44d1862d80694b63e652eab8844dc6d87551695d201b08e7393
|
File details
Details for the file wizerd-0.1.2-py3-none-any.whl.
File metadata
- Download URL: wizerd-0.1.2-py3-none-any.whl
- Upload date:
- Size: 54.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b56288669b84c3951d658028fd3a46a0bb63fc64586aad69443e8476fb78301
|
|
| MD5 |
81564bbb6dcf4277215b48539c76f58f
|
|
| BLAKE2b-256 |
369d70f5dc927cc21ca446aed06ee6bc143560d7a0cddf907007aed49fd7d462
|