Java-made ER diagram generation tool. By using JDBC driver, you can generate ER diagram from various DBs such as Oracle, SQL Server, MySQL and PostgreSQL. In addition to the ER diagram, the definitions of tables and constraints are also plotted as a set.
The overall stylish design allows you to grin after it is generated.
Download from the following URL. https://github.com/schemaspy/schemaspy#schemaspy-v600-rc2
The current version of 5.0.0 is not stylish, so download SchemaSpy v6.0.0 RC2.
Java is required for Schema Spy to work, so install it. If you have already installed it, skip it.
Click [Mac OS X] from the following URL to download the installer. https://java.com/en/download/manual.jsp
Run the .dmg file to install.
"Graphviz" is a tool that converts a text file written in the dot language format into a graph and outputs it as an image. Schema Spy uses it for ER diagram output.
For Mac, install from Homebrew.
$ brew install graphviz --with-librsvg --with-pango
If only brew install graphviz
is used, the" -Tcmapx' failed with return code 139 "error will occur and the ER diagram will not be generated.
https://github.com/schemaspy/schemaspy/issues/33
"JDBC driver" is middleware for operating DB from Java application. "JDBC" is an abbreviation for "Java Database Connectivity".
Each vendor has a different driver and is usually distributed by each vendor. Oracle also distributes it on the official website, and downloads the JDBC driver according to the version. http://www.oracle.com/technetwork/jp/database/features/jdbc/index-099275-ja.html
In my case, the JDBC driver was included in the environment where Oracle was installed, so I used that.
At this point, you're ready to go. Execute the following command to generate the table definition and ER diagram. Depending on the number of tables and columns, it can take tens of seconds to minutes to generate.
# java -jar {schemaspy.jar path} -t {DB type} -dp {JDBC driver path} -db {DB name} -host {hostname} -port {port number} [-s {Schema name}] -u {username} [-p {password}] -o {Output destination path} -gv {GraphViz folder path} -cat %
$ java -jar schemaspy-6.0.0-rc2.jar -t orathin -dp ./drivers/ojdbc14.jar -db testdb -host 192.168.10.1 -port 1521 -s TESTSCHEMA -u testuser -p testpass -o ./output -gv /usr/local/Cellar/graphviz/2.40.1 -cat %
Specify "orathin" as the DB type. The default port number for Oracle is "1521".
For Oracle, omitting the schema name resulted in an error. Please note that the schema name is case sensitive.
If you do not add -cat%
, an "ERROR --Catalog name can't be null" error will occur and you will not be able to generate it.
https://github.com/schemaspy/schemaspy/issues/160
Table definitions etc. are output in HTML format. You can refer to it by simply opening "index.html" directly under the output destination path with a web browser.