Skip to main content

Simple entity relation (ER) diagrams generation

Project description

Entity relation diagrams generator

eralchemy2 generates Entity Relation (ER) diagram (like the one below) from databases or from SQLAlchemy models.

Example

Example for a graph

Example for NewsMeme

Quick Start

Install on a mac

The simplest way to install eralchemy on OSX is by using Homebrew

$ brew install eralchemy2

Install

To install eralchemy2, just do:

$ pip install eralchemy2

eralchemy2 requires GraphViz to generate the graphs and Python. Both are available for Windows, Mac and Linux.

Usage from Command Line

From a database

$ eralchemy2 -i sqlite:///relative/path/to/db.db -o erd_from_sqlite.pdf

The database is specified as a SQLAlchemy database url.

From a markdown file.

$ curl 'https://raw.githubusercontent.com/maurerle/eralchemy2/master/example/newsmeme.er' > markdown_file.er
$ eralchemy2 -i 'markdown_file.er' -o erd_from_markdown_file.pdf

From a Postgresql DB to a markdown file excluding tables named temp and audit

$ eralchemy2 -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-tables temp audit

From a Postgresql DB to a markdown file excluding columns named created_at and updated_at from all tables

$ eralchemy2 -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-columns created_at updated_at

From a Postgresql DB to a markdown file for the schema schema

$ eralchemy2 -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -s schema

Usage from Python

from eralchemy2 import render_er
## Draw from SQLAlchemy base
render_er(Base, 'erd_from_sqlalchemy.png')

## Draw from database
render_er("sqlite:///relative/path/to/db.db", 'erd_from_sqlite.png')

Architecture

Architecture schema

Thanks to it's modular architecture, it can be connected to other ORMs/ODMs/OGMs/O*Ms.

Contribute

Every feedback is welcome on the GitHub issues.

To run the tests, use : $ py.test. Some tests require a local postgres database with a schema named test in a database named test all owned by a user named postgres with a password of postgres.

All tested PR are welcome.

Notes

eralchemy2 is a fork of its predecessor ERAlchemy by @Alexis-benoist, which is not maintained anymore and does not work with SQLAlchemy > 1.4. If it is maintained again, I'd like to push the integrated changes upstream.

ERAlchemy was inspired by erd, though it is able to render the ER diagram directly from the database and not just only from the ER markup language.

Released under an Apache License 2.0

Initial Creator: Alexis Benoist Alexis_Benoist

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

eralchemy2-1.3.3.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

eralchemy2-1.3.3-py2.py3-none-any.whl (16.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file eralchemy2-1.3.3.tar.gz.

File metadata

  • Download URL: eralchemy2-1.3.3.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.2

File hashes

Hashes for eralchemy2-1.3.3.tar.gz
Algorithm Hash digest
SHA256 414f2a3aa7754a04b1f58b7df156ebb4828f1c9f661e009a016da49b2037ee1a
MD5 45f893d2d9c7d2dccdec4e08ce5b05e4
BLAKE2b-256 d61435d84f1db6dd8f84cedfd94d235404fd99561a863a7d838eec9a06a8137e

See more details on using hashes here.

File details

Details for the file eralchemy2-1.3.3-py2.py3-none-any.whl.

File metadata

  • Download URL: eralchemy2-1.3.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.2

File hashes

Hashes for eralchemy2-1.3.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0bed4db9308ade9da9c97540777b86dd516fbefa51d912fd737eeaa8882c4c55
MD5 3b30bd4e37e5737486abe75958fa5ecb
BLAKE2b-256 ada60c45394ea2e827b335c73f9af3cf04dcbad9f8faa7b5ab5ab579c19d7ae8

See more details on using hashes here.

Supported by

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