https://github.com/harborn-digital/eralchemy
Entity Relation Diagrams generation tool
https://github.com/harborn-digital/eralchemy
managed team-engineering-3
Last synced: 2 months ago
JSON representation
Entity Relation Diagrams generation tool
- Host: GitHub
- URL: https://github.com/harborn-digital/eralchemy
- Owner: Harborn-digital
- License: apache-2.0
- Created: 2021-02-18T09:55:39.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-18T13:53:49.000Z (over 4 years ago)
- Last Synced: 2025-01-30T05:27:09.271Z (4 months ago)
- Topics: managed, team-engineering-3
- Language: Python
- Homepage:
- Size: 1.19 MB
- Stars: 0
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: newsmeme.png
- License: LICENSE.md
Awesome Lists containing this project
README
# Entity relation diagrams generator
[](https://gitter.im/Alexis-benoist/eralchemy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
ERAlchemy generates Entity Relation (ER) diagram (like the one below) from databases or from SQLAlchemy models.
## Example

[Example for NewsMeme](https://bitbucket.org/danjac/newsmeme)
## Quick Start
### Install on a mac
The simplest way to install eralchemy on OSX is by using [Homebrew](http://brew.sh)$ brew install eralchemy
### Install
To install ERAlchemy, just do:$ pip install eralchemy
`ERAlchemy` requires [GraphViz](http://www.graphviz.org/download) to generate the graphs and Python. Both are available for Windows, Mac and Linux.
### Usage from Command Line
#### From a database
$ eralchemy -i sqlite:///relative/path/to/db.db -o erd_from_sqlite.pdf
The database is specified as a [SQLAlchemy](http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls)
database url.#### From a markdown file.
$ curl 'https://raw.githubusercontent.com/Alexis-benoist/eralchemy/master/example/newsmeme.er' > markdown_file.er
$ eralchemy -i 'markdown_file.er' -o erd_from_markdown_file.pdf#### From a Postgresql DB to a markdown file excluding tables named `temp` and `audit`
$ eralchemy -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
$ eralchemy -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`
$ eralchemy -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -s schema
### Usage from Python
```python
from eralchemy 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
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](https://github.com/Alexis-benoist/eralchemy/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
ERAlchemy was inspired by [erd](https://github.com/BurntSushi/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
Creator: Alexis Benoist [Alexis_Benoist](https://twitter.com/Alexis_Benoist)