I have been using Schemaspy(v5.0) to diagram mySQL(v5.7.11) using Graphviz via Homebrew on my Mac (El Capitan). A recent update to Graphviz(v2.40.1) apparently has broken Schemaspy's ability to generate the relational diagrams.
Writing/graphing summary.....org.schemaspy.util.Dot$DotFailure: 'dot -Tpng:gd
/Tools/docs/data/project/diagrams/summary/relationships.real.compact.dot
-o/Tools/docs/data/project/diagrams/summary/relationships.real.compact.png
-Tcmapx'
failed with return code 139
To solve this issue, I have tried:
- uninstall/reinstall graphviz
- downgrade Graphviz(v2.38 - it was the only version I could find and homebrew didn't have any older versions either) but it hosed my install
- attempted to run on a colleague's computer with same results
- tried the new beta version of schemaspy(v6.0-beta3)
- searched graphviz forums (page crashed), stackoverflow, and general google search.
Looking to figure out how to get this working again.
[Edit] I didn't find a solution to why SchemaSpy/Graphviz stopped working (or wtf "code 139" meant), but I did use a workaround.
- Install Docker
- Get mnuessler/schemaspy or similar from hub.docker.com
- open a volume to your host - it will be used in the docker command
- run the command below
docker run -it --rm -v /docs/data:/data mnuessler/schemaspy -hq
-t mysql -host localhost -u root -p root -db things -o /data/leads
where -v is the volume you opened on your host and -o /data/... is where the output will show up after the run
By default SchemaSpy expects the dot executable to be in the PATH environment variable. Use this option to explicitly specify where Graphviz is installed.
If you don't want to add it to your PATH, you can use -gv parameter and provide path to where Graphviz is installed.
Update
-renderer :quartz
to the commandline.-renderer :cairo
to the commandline.