Skip to main content

Interactive ERD visualization for SQLAlchemy 2.0 models

Project description

erdalchemy

Interactive ERD visualizer for SQLAlchemy 2.0 models. Introspects your DeclarativeBase metadata and generates diagram files with no manual configuration required.

  • Drag-and-drop interactive HTML output
  • Auto-layout via force-directed algorithm
  • Hover highlighting for tables and relationships
  • Export to HTML, SVG, PNG, and PDF
  • Built-in color themes and per-table color overrides
  • Zero dependencies beyond SQLAlchemy

preview

Installation

pip install erdalchemy

PNG and PDF export require an optional dependency:

pip install "erdalchemy[all]"

Quick start

from sqlalchemy_erd import generate_erd
from myapp.models import Base

generate_erd(Base, output="erd.html")

CLI

# Interactive HTML (default)
sqlalchemy-erd myapp.models:Base

# Specific format and output path
sqlalchemy-erd myapp.models:Base --format svg --output erd.svg

# With theme and custom title
sqlalchemy-erd myapp.models:Base --format png --theme blue --title "My Schema"

# Per-table color overrides as JSON
sqlalchemy-erd myapp.models:Base --colors '{"users": "#1d4ed8", "orders": "#059669"}'

# High-resolution PNG
sqlalchemy-erd myapp.models:Base --format png --scale 3

Python API

from sqlalchemy_erd import generate_erd
from myapp.models import Base

generate_erd(Base, output="erd.html", format="html")
generate_erd(Base, output="erd.svg",  format="svg")
generate_erd(Base, output="erd.png",  format="png", scale=2)   # requires cairosvg
generate_erd(Base, output="erd.pdf",  format="pdf")             # requires cairosvg

Themes

Five built-in themes: default, blue, green, dark, rose.

Preview images for each theme are available in examples/themes/.

generate_erd(Base, theme="dark")

Per-table color overrides let you assign any hex color to individual tables while keeping the rest of the theme intact:

generate_erd(
    Base,
    theme="default",
    table_colors={
        "users":    "#1e40af",
        "orders":   "#065f46",
        "products": "#9f1239",
    },
)

Supported column types

SQLAlchemy type Badge
Primary key PK
Foreign key FK
String string
Text text
Integer / BigInteger / SmallInteger int / bigint / smallint
Float / Numeric float / numeric
Date date
DateTime datetime
Boolean bool
JSON json
Uuid uuid

Nullable columns display a ? suffix (e.g. text?, date?).

Relationship types

Cardinality Line style
1:N Solid with arrow
N:N Dashed with arrow

Examples

See the examples/ directory:

License

MIT

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

erdalchemy-0.1.1.tar.gz (886.8 kB view details)

Uploaded Source

Built Distribution

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

erdalchemy-0.1.1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file erdalchemy-0.1.1.tar.gz.

File metadata

  • Download URL: erdalchemy-0.1.1.tar.gz
  • Upload date:
  • Size: 886.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for erdalchemy-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8a29da5194e0f4390ddf8742997f172c9569e38aab116e12e38624c28339e1bd
MD5 c8f5ff3a92ff9ddd2c5b93900c1dd554
BLAKE2b-256 2210dd8e0fa7383bb8bbc454360ee88e52befe89aa12ca6fa06dadf320c9aded

See more details on using hashes here.

File details

Details for the file erdalchemy-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: erdalchemy-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for erdalchemy-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf44303a55d98f21b70026927c8ea4c60d5374b26bfd7b5045df049018b9e5ff
MD5 b89f996fbc4af71a52941b9a95138a7d
BLAKE2b-256 b99ec4182139ca6b065eefbed407b39813e77be4dbf59ddd1ec9383f213116c1

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