我一直在使用 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 “code 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/... 是运行后将显示输出的位置