Quelqu'un connaît-il un moyen de créer un diagramme ER à partir de modèles SQLAlchemy en python 3. J'ai trouvé sqlalchemy_schemadisplay, qui est python 2 à cause de pydot et ERAlchemy qui est également python 2 uniquement.

12
BrHa 8 juil. 2017 à 05:37

2 réponses

Meilleure réponse

Vous pouvez essayer eralchemy.

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import pandas as pd
from eralchemy import render_er

from sqlalchemy import (MetaData, Table, Column)    
metadata = MetaData()

# create your own model ....
users = Table('users', metadata,
    Column('user_id', Integer(), primary_key=True),
    Column('username', String(15), nullable=False, unique=True),
)    
orders = Table('orders', metadata,
    Column('order_id', Integer()),
    Column('user_id', ForeignKey('users.user_id')),
)
# add your own table ....

# Show ER model from here
filename = 'mymodel.png'
render_er(metadata, filename)
imgplot = plt.imshow(mpimg.imread(filename))
plt.rcParams["figure.figsize"] = (15,10)
plt.show()

Ensuite, il montre le modèle.

enter image description here

Les modules que j'ai utilisés sont:

<₹ Software < Version Python 3.4.5 64bit
IPython 5.1.0
OS Windows 10
sqlalchemy 1.1.5
eralchemy 1.1.0
matplotlib 2.0.0

10
Jesse 3 sept. 2017 à 06:34

SQLAlchemy_SchemaDisplay fonctionne aussi pour moi.

Sous Windows, j'ai installé Graphviz et ces exigences via pip:

  • pydot
  • sqlalchemy
  • sqlalchemy_schemadisplay
  • graphviz

Ensuite, j'ai ajouté le dossier binaire (bin) Grapviz au chemin et j'ai exécuté le code de l'exemple à https : //github.com/sqlalchemy/sqlalchemy/wiki/SchemaDisplay

1
janbrohl 18 mai 2019 à 12:45