eralchemy2


Nameeralchemy2 JSON
Version 1.3.8 PyPI version JSON
download
home_pagehttps://github.com/maurerle/eralchemy2
SummarySimple entity relation (ER) diagrams generation
upload_time2023-10-30 14:11:49
maintainer
docs_urlNone
authorFlorian Maurer
requires_python>=3.7,<4.0
licenseApache-2.0
keywords sql orm relational databases er diagram render
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
[![PyPI Version](https://img.shields.io/pypi/v/eralchemy2.svg)](
https://pypi.org/project/eralchemy2/)
[![PyPI Downloads](https://img.shields.io/pypi/dm/eralchemy2.svg)](
https://pypi.org/project/eralchemy2/)
![Github Actions](https://github.com/maurerle/eralchemy2/actions/workflows/python-app.yml/badge.svg)


# Entity relation diagrams generator

eralchemy2 generates Entity Relation (ER) diagram (like the one below) from databases or from SQLAlchemy models.
Works with SQLAlchemy < 1.4 but also with versions greater than 1.4

## Example

![Example for a graph](https://raw.githubusercontent.com/maurerle/eralchemy2/main/newsmeme.svg?raw=true "Example for NewsMeme")

[Example for NewsMeme](https://bitbucket.org/danjac/newsmeme)

## Quick Start

### Install
To install eralchemy2, just do:

    $ pip install eralchemy2

`eralchemy2` 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

    $ eralchemy2 -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/maurerle/eralchemy2/main/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

```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](https://raw.githubusercontent.com/maurerle/eralchemy2/main/eralchemy_architecture.png?raw=true "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](https://github.com/maurerle/eralchemy2/issues).

To run the tests, use : `$ py.test` or `$ tox`.
Some tests require a local postgres database with a schema named test in a database
named test all owned by a user named eralchemy with a password of eralchemy.
This can be easily set up using docker-compose with: `docker-compose up -d`.

All tested PR are welcome.

## Notes

eralchemy2 is a fork of its predecessor [ERAlchemy](https://github.com/Alexis-benoist/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](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

Initial Creator: Alexis Benoist [Alexis_Benoist](https://twitter.com/Alexis_Benoist)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/maurerle/eralchemy2",
    "name": "eralchemy2",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4.0",
    "maintainer_email": "",
    "keywords": "sql,ORM,relational databases,ER diagram,render",
    "author": "Florian Maurer",
    "author_email": "fmaurer@disroot.org",
    "download_url": "https://files.pythonhosted.org/packages/61/37/1bfb13474a83af2e969e071e4c4292a6998caa8d2520e0656d343d79e2c8/eralchemy2-1.3.8.tar.gz",
    "platform": null,
    "description": "\n[![PyPI Version](https://img.shields.io/pypi/v/eralchemy2.svg)](\nhttps://pypi.org/project/eralchemy2/)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/eralchemy2.svg)](\nhttps://pypi.org/project/eralchemy2/)\n![Github Actions](https://github.com/maurerle/eralchemy2/actions/workflows/python-app.yml/badge.svg)\n\n\n# Entity relation diagrams generator\n\neralchemy2 generates Entity Relation (ER) diagram (like the one below) from databases or from SQLAlchemy models.\nWorks with SQLAlchemy < 1.4 but also with versions greater than 1.4\n\n## Example\n\n![Example for a graph](https://raw.githubusercontent.com/maurerle/eralchemy2/main/newsmeme.svg?raw=true \"Example for NewsMeme\")\n\n[Example for NewsMeme](https://bitbucket.org/danjac/newsmeme)\n\n## Quick Start\n\n### Install\nTo install eralchemy2, just do:\n\n    $ pip install eralchemy2\n\n`eralchemy2` requires [GraphViz](http://www.graphviz.org/download) to generate the graphs and Python. Both are available for Windows, Mac and Linux.\n\n### Usage from Command Line\n\n#### From a database\n\n    $ eralchemy2 -i sqlite:///relative/path/to/db.db -o erd_from_sqlite.pdf\n\nThe database is specified as a [SQLAlchemy](http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#database-urls)\ndatabase url.\n\n#### From a markdown file.\n\n    $ curl 'https://raw.githubusercontent.com/maurerle/eralchemy2/main/example/newsmeme.er' > markdown_file.er\n    $ eralchemy2 -i 'markdown_file.er' -o erd_from_markdown_file.pdf\n\n#### From a Postgresql DB to a markdown file excluding tables named `temp` and `audit`\n\n    $ eralchemy2 -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-tables temp audit\n\n#### From a Postgresql DB to a markdown file excluding columns named `created_at` and `updated_at` from all tables\n\n    $ eralchemy2 -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -o filtered.er --exclude-columns created_at updated_at\n\n#### From a Postgresql DB to a markdown file for the schema `schema`\n\n    $ eralchemy2 -i 'postgresql+psycopg2://username:password@hostname:5432/databasename' -s schema\n\n### Usage from Python\n\n```python\nfrom eralchemy2 import render_er\n## Draw from SQLAlchemy base\nrender_er(Base, 'erd_from_sqlalchemy.png')\n\n## Draw from database\nrender_er(\"sqlite:///relative/path/to/db.db\", 'erd_from_sqlite.png')\n```\n\n## Architecture\n![Architecture schema](https://raw.githubusercontent.com/maurerle/eralchemy2/main/eralchemy_architecture.png?raw=true \"Architecture schema\")\n\nThanks to it's modular architecture, it can be connected to other ORMs/ODMs/OGMs/O*Ms.\n\n## Contribute\n\nEvery feedback is welcome on the [GitHub issues](https://github.com/maurerle/eralchemy2/issues).\n\nTo run the tests, use : `$ py.test` or `$ tox`.\nSome tests require a local postgres database with a schema named test in a database\nnamed test all owned by a user named eralchemy with a password of eralchemy.\nThis can be easily set up using docker-compose with: `docker-compose up -d`.\n\nAll tested PR are welcome.\n\n## Notes\n\neralchemy2 is a fork of its predecessor [ERAlchemy](https://github.com/Alexis-benoist/eralchemy) by @Alexis-benoist, which is not maintained anymore and does not work with SQLAlchemy > 1.4.\nIf it is maintained again, I'd like to push the integrated changes upstream.\n\nERAlchemy was inspired by [erd](https://github.com/BurntSushi/erd), though it is able to render the ER diagram directly\nfrom the database and not just only from the `ER` markup language.\n\nReleased under an Apache License 2.0\n\nInitial Creator: Alexis Benoist [Alexis_Benoist](https://twitter.com/Alexis_Benoist)\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Simple entity relation (ER) diagrams generation",
    "version": "1.3.8",
    "project_urls": {
        "Homepage": "https://github.com/maurerle/eralchemy2",
        "Repository": "https://github.com/maurerle/eralchemy2"
    },
    "split_keywords": [
        "sql",
        "orm",
        "relational databases",
        "er diagram",
        "render"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7895b726425f4fb9646d347d6ba7de6bf27cfcbbb16a71d5e9948518bcaadbf5",
                "md5": "7b3593d85de13b51c7f62510c4daba6a",
                "sha256": "d33f5f1d5a825cf078b55af360dbdf2c930d34420d32c3d327a67d42227bc2e5"
            },
            "downloads": -1,
            "filename": "eralchemy2-1.3.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7b3593d85de13b51c7f62510c4daba6a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4.0",
            "size": 16996,
            "upload_time": "2023-10-30T14:11:48",
            "upload_time_iso_8601": "2023-10-30T14:11:48.331740Z",
            "url": "https://files.pythonhosted.org/packages/78/95/b726425f4fb9646d347d6ba7de6bf27cfcbbb16a71d5e9948518bcaadbf5/eralchemy2-1.3.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61371bfb13474a83af2e969e071e4c4292a6998caa8d2520e0656d343d79e2c8",
                "md5": "cea8be333516cffb35ea6c39860e8a54",
                "sha256": "6288371dbf53d52e8159d754b1cb6f5b711df6615cde259cc1db54b248710e6f"
            },
            "downloads": -1,
            "filename": "eralchemy2-1.3.8.tar.gz",
            "has_sig": false,
            "md5_digest": "cea8be333516cffb35ea6c39860e8a54",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4.0",
            "size": 16468,
            "upload_time": "2023-10-30T14:11:49",
            "upload_time_iso_8601": "2023-10-30T14:11:49.834091Z",
            "url": "https://files.pythonhosted.org/packages/61/37/1bfb13474a83af2e969e071e4c4292a6998caa8d2520e0656d343d79e2c8/eralchemy2-1.3.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-30 14:11:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "maurerle",
    "github_project": "eralchemy2",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "eralchemy2"
}
        
Elapsed time: 0.12687s