Generate an E-R Diagram by reverse-engineering a database

Camilo Díaz Repka picture Camilo Díaz Repka · Oct 9, 2008 · Viewed 42.9k times · Source

Note: Originally this question was asked for PostgreSQL, however, the answer applies to almost any database which has a JDBC driver that can detect foreign-key associations.


Querying PostgreSQL data dictionary for foreign-keys and relationship between tables is very straightforward, but how can I use that information to generate a graph of the relations between tables?

Any recommendations about tools that can do this?

EDIT: I know GraphVIZ/DOT can be useful, however, I don't know have any idea regarding how to code an app that would generate the directed graph .DOT file.

Answer

Paul Wicks picture Paul Wicks · Oct 9, 2008

Dot is part of the graphviz package, which is a pretty damn cool/useful tool. Of course, you'll need something to generate the dot files for graphviz. I've used SchemaSpy once or twice in the past, and it works pretty well, provided you have the relationships defined in the database.