SchemaSpy is a neat tool to produce visual diagrams for most relational databases.
Here's how to use it to generate schema relationship diagrams for PostgreSQL databases:
-
Download the jar file from here (the current version is v6.1.0)
-
Get the PostgreSQL JDBC driver (unless your installed version of java is really old, use the latest JDBC4 jar file)
-
Run the command against an existing database. For most databases, the schema (-s option) we are interested in is the public one:
java -jar schemaspy-6.1.0.jar -t pgsql \
-s public -db [db name] -u [db user] -p [password] \
-host localhost -o /tmp \
-dp /path/to/JDBC/driver/postgresql-42.2.12.jar
The above example sends all the output to the /tmp folder, but that can be changed as desired.
SchemaSpy produces several different diagrams, but the main summary diagram is in:
/tmp/diagrams/summary/relationships.real.large.png.
WARN - Connection Failure
Failed to connect to database URL [jdbc:postgresql://postgresdb.crzu3pt7qlul.ap-south-1.rds.amazonaws.com,5432/public] Failed to create any of 'org.postgresql.Driver' driver from driverPath '/org/schemaspy/drivers/postgresql-9.4.1208.jre6.jar' with sibling jars no.
Resulting in classpath: empty
There were missing paths in driverPath:
/org/schemaspy/drivers/postgresql-9.4.1208.jre6.jar
Use commandline option '-dp' to specify driver location.
If you need to load sibling jars used '-loadjars'
INFO - StackTraces have been omitted, use
-debug
when executing SchemaSpy to see them