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

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.1.2.tar.gz (59.9 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.1.2-py3-none-any.whl (54.1 kB view details)

Uploaded Python 3

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

Hashes for wizerd-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2ceceb765473844ed7ccde16ba605f5f503a2fc9b07bd648e8c794c91cf06878
MD5 34340bfa61bf2e682c54c7b73b6d76af
BLAKE2b-256 efd2a8d902bbc44d1862d80694b63e652eab8844dc6d87551695d201b08e7393

See more details on using hashes here.

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

Hashes for wizerd-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7b56288669b84c3951d658028fd3a46a0bb63fc64586aad69443e8476fb78301
MD5 81564bbb6dcf4277215b48539c76f58f
BLAKE2b-256 369d70f5dc927cc21ca446aed06ee6bc143560d7a0cddf907007aed49fd7d462

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