我一直在使用Schemaspy(v5.0)在我的Mac(El Capitan)上通过Homebrew使用Graphviz来绘制mySQL(v5.7.11).最近对Graphviz(v2.40.1)的更新显然破坏了Schemaspy生成关系图的能力.
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
为了解决这个问题,我尝试过:
卸载/重新安装graphviz
降级Graphviz(v2.38 - 它是我能找到的唯一版本,自制软件也没有任何旧版本)但是我把它安装了
试图在同事的计算机上运行,结果相同
尝试了新的beta版schemaspy(v6.0-beta3)
搜索graphviz论坛(页面崩溃),stackoverflow和一般谷歌搜索.
想弄清楚如何重新开始工作.
[编辑]我没有找到解决为什么SchemaSpy/Graphviz停止工作(或wtf"代码139"的意思),但我确实使用了一种解决方法.
安装Docker
从hub.docker.com获取mnuessler/schemaspy或类似内容
打开一个卷给你的主机 - 它将在docker命令中使用
运行以下命令
docker run -it --rm -v /docs/data:/data mnuessler/schemaspy -hq
-t mysql -host localhost -u root -p root -db things -o /data/leads
其中-v是您在主机上打开的卷,-o/data/...是运行后输出显示的位置
默认情况下,SchemaSpy期望点可执行文件位于PATH环境变量中.使用此选项可明确指定Graphviz的安装位置.
如果您不想将其添加到PATH,可以使用-gv参数并提供安装Graphviz的路径.
更新:以下评论,也来自@rafalkasa,有最好的解决方案.通过arg
-renderer:石英
适用于Mac OS El Capitan,带有graphviz版本2.40.1(20161225.0304)