Simple package for describing SQLAlchemy schema and display raw database tables. Relation detecting by ForeignKey columns. Supports mapped class inherit. BSD licensed.
Output formats:
- python >= 2.5
- SQLAlchemy >= 0.5
pip install sadisplay
From bitbucket:
pip install http://bitbucket.org/estin/sadisplay/get/tip.tar.gz # or easy_install http://bitbucket.org/estin/sadisplay/get/tip.tar.gz
SQLAlchemy model:
Write simple script in your project environment:
import sadisplay from yourapp import model desc = sadisplay.describe([getattr(model, attr) for attr in dir(model)]) open('schema.plantuml', 'w').write(sadisplay.plantuml(desc)) open('schema.dot', 'w').write(sadisplay.dot(desc)) # Or only part of schema desc = sadisplay.describe([model.User, model.Group, model.Persmission]) open('auth.plantuml', 'w').write(sadisplay.plantuml(desc)) open('auth.dot', 'w').write(sadisplay.dot(desc))
Render PlantUML class diagram:
$ java -jar plantuml.jar schema.plantuml # or for svg format $ java -jar plantuml.jar -Tsvg schema.plantuml
Render graph by graphviz:
$ dot -Tpng schema.dot > schema.png
Also you can display you sql database tables by reflecting feature:
$ sadisplay -u <URL connection string to db> -r dot > schema.dot $ dot -Tpng schema.dot > schema.png