Alternatives To Sqlalchemy_schemadisplay
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
6 months ago2December 07, 20224R
R package for streamlined export of graphs and data tables.
2 months ago204TeX
pgfplots - A TeX package to draw normal and/or logarithmic plots directly in TeX in two and three dimensions with a user-friendly interface and pgfplotstable - a TeX package to round and format numerical tables. Examples in manuals and/or on web site.
Ascii Data113124 years ago4May 01, 20193apache-2.0Java
A small Java library for producing nice looking text-based line-graphs and tables.
Sqlalchemy_schemadisplay1051188 months ago5January 27, 201610otherPython
2 years ago3mitPython
GCC: Graph Contrastive Coding for Graph Neural Network Pre-Training
Leafpop8926a year ago4May 22, 20216otherR
Include Tables, Images and Graphs in Leaflet Popups
Rimbu851014 days ago25July 02, 20223mitTypeScript
Rimbu is a TypeScript library focused on immutable, performant, and type-safe collections and other tools.
Sub Gc75
a year ago1mitJupyter Notebook
Code repository for our paper "Comprehensive Image Captioning via Scene Graph Decomposition" in ECCV 2020.
14 hours ago80otherR
Table, Listings, and Graphs (TLG) library for common outputs used in clinical trials
Graphvix50346 months ago6July 08, 20187mitElixir
Graphviz for Elixir
Alternatives To Sqlalchemy_schemadisplay
Select To Compare

Alternative Project Comparisons


Turn SQLAlchemy DB Model into a graph.


See SQLAlchemy wiki for the previous version of this doc.


You will need atleast SQLAlchemy and pydot along with graphviz for this. Graphviz-cairo is highly recommended to get tolerable image quality. If PIL and an image viewer are available then there are functions to automatically show the image. Some of the stuff, specifically loading list of tables from a database via a mapper and reflecting indexes currently only work on postgres.

This is an example of database entity diagram generation:

from sqlalchemy import MetaData
from sqlalchemy_schemadisplay import create_schema_graph

# create the pydot graph object by autoloading all tables via a bound metadata object
graph = create_schema_graph(metadata=MetaData('postgres://user:[email protected]/database'),
   show_datatypes=False, # The image would get nasty big if we'd show the datatypes
   show_indexes=False, # ditto for indexes
   rankdir='LR', # From left to right (instead of top to bottom)
   concentrate=False # Don't try to join the relation lines together
graph.write_png('dbschema.png') # write out the file

And an UML class diagram from a model:

from myapp import model
from sqlalchemy_schemadisplay import create_uml_graph
from sqlalchemy.orm import class_mapper

# lets find all the mappers in our model
mappers = [model.__mapper__]
for attr in dir(model):
    if attr[0] == '_': continue
        cls = getattr(model, attr)

# pass them to the function and set some formatting options
graph = create_uml_graph(mappers,
    show_operations=False, # not necessary in this case
    show_multiplicity_one=False # some people like to see the ones, some don't
graph.write_png('schema.png') # write out the file


1.4 - Unreleased

  • Set dir kwarg in Edge instantiation to 'both' in order to show arrow heads and arrow tails. [bkrn - Aaron Di Silvestro]
  • Add 'show_column_keys' kwarg to 'create_schema_graph' to allow a PK/FK suffix to be added to columns that are primary keys/foreign keys respectively [cchrysostomou - Constantine Chrysostomou]
  • Add 'restrict_tables' kwarg to 'create_schema_graph' to restrict the desired tables we want to generate via graphviz and show relationships for [cchrysostomou - Constantine Chrysostomou]

1.3 - 2016-01-27

  • Fix warning about illegal attribute in uml generation by using correct attribute. [electrocucaracha - Victor Morales]
  • Use MIT license [fschulze]

1.2 - 2014-03-02

  • Compatibility with SQLAlchemy 0.9. [fschulze]
  • Compatibility with SQLAlchemy 0.8. [Surgo - Kosei Kitahara]
  • Leave tables out even when a foreign key points to them but they are not in the table list. [tiagosab - Tiago Saboga]

1.1 - 2011-10-12

  • New option to skip inherited attributes. [nouri]
  • Quote class name, because some names like 'Node' confuse dot. [nouri - Daniel Nouri]

1.0 - 2011-01-07

  • Initial release [fschulze - Florian Schulze]
  • Original releases as recipe on SQLAlchemy Wiki by Ants Aasma
Popular Graph Projects
Popular Table Projects
Popular Computer Science Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.