Skip to main content

PostgreSQL ER diagram generator with zero-overlap layouts

Project description

WizERD

PyPI Version Python Versions License: MIT CI

WizERD is a PostgreSQL ER diagram generator that creates beautiful, readable diagrams with zero table overlap and minimal edge crossings.

WizERD Example Output

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

Check the currently installed WizERD version:

wizerd --version
# or
python -m wizerd --version

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

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

wizerd-0.2.0.tar.gz (61.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wizerd-0.2.0-py3-none-any.whl (55.2 kB view details)

Uploaded Python 3

File details

Details for the file wizerd-0.2.0.tar.gz.

File metadata

  • Download URL: wizerd-0.2.0.tar.gz
  • Upload date:
  • Size: 61.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for wizerd-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8b90a95c9b40d6f7a025b3be884349acff2dcb5554f7f5459df3bdac214644a5
MD5 823efedf82bdcb871d9bb07ac5a99b26
BLAKE2b-256 452d361d432b72e2c63c7bc29b75cb0e8beb16e5cbab42eb4473dd98fc7e41e8

See more details on using hashes here.

File details

Details for the file wizerd-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: wizerd-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 55.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for wizerd-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1af58def71950b9a757a1056ff3b8eeda90b73b4fe42a70d36f8d9422638ade1
MD5 bdc0490576ca206c5629eb64c8c07277
BLAKE2b-256 4b74889b5806c73b9fd0bc62198d8619e45d3c37707ceb1b5ee1a74b95250e8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page