A utility for rendering the XML output of Schemaspy into a PlantUML diagram.
In general, schema diagrams are low fidelity representations of the actual schema. The goal of this utility is
to generate a diagram that provides the user with a general idea of what the actual schema is. Ultimately, the fine
details are in that .sql
file.
To generate the schema XML file, the Schemaspy jar is required. Version used here is 6.1.0
. It is available from
GitHub
Since we are not interested in HTML output the -nohtml
parameter should be used. An invocation may look like this:
java -jar schemaspy-6.1.0.jar -configFile ./schemaspy.config
where schemaspy.config
for Postgres may be:
schemaspy.nohtml
schemaspy.t=pgsql
schemaspy.dp=<HOME_DIR>/.m2/repository/org/postgresql/postgresql/42.2.16/postgresql-42.2.16.jar
schemaspy.host=localhost
schemaspy.port=5432
schemaspy.db=<DB_NAME>
schemaspy.u=<DB_USER>
schemaspy.p=<DB_PASSWORD>
schemaspy.o=<OUTPUT_DIR>/schemaspy_out
schemaspy.schemas=public
schemaspy.I=<STUFF_TO_IGNORE>
Checkout the project and execute ./gradlew clean build
. The build/libs
directory will contain the fat jar gesrep-<VERSION>-all.jar
java -jar build/libs/gesrep-<VERSION>.jar <PATH_TO_SCHEMA_XML_FILE> <PATH_TO_OUTPUT_FILE>
Some sample schema XML files
are in test/resources
so you can try them out.
This is the output from test/resources/demo.bookings.xml
:
Because the output is a PlantUML file, it is possible to customise the "look and feel". For example, try adding !theme materia-outline
,
removing skinparam defaultFontName Courier
and so on.
at the top.
Copyright 2021 David Soroko.
Licensed under the Apache License, Version 2.0