Sha*_*unk 12 graphviz schemaspy
我一直在使用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
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我尝试过:
想弄清楚如何重新开始工作.
[编辑]我没有找到解决为什么SchemaSpy/Graphviz停止工作(或wtf"代码139"的意思),但我确实使用了一种解决方法.
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/...是运行后输出显示的位置
raf*_*asa 10
默认情况下,SchemaSpy期望点可执行文件位于PATH环境变量中.使用此选项可明确指定Graphviz的安装位置.
如果您不想将其添加到PATH,可以使用-gv参数并提供安装Graphviz的路径.
更新:以下评论,也来自@rafalkasa,有最好的解决方案.通过arg
-renderer:石英
适用于Mac OS El Capitan,带有graphviz版本2.40.1(20161225.0304)
SchemaSpy 6.1.0 版本已经删除了对 GraphViz 的依赖,因此使用该版本可以避免此问题。
版本 6.1.0 包含 GraphViz 的 JavaScript 实现,可以使用它来代替在 PATH 上查找 GraphViz。
我不确定默认情况下是否使用 JavaScript 版本,但您可以通过提供参数来强制此行为-vizjs,例如
java -jar ./schemaspy-6.1.0-SNAPSHOT.jar -vizjs -t pgsql -o output
-host localhost -port 5432 -s public -db my_db -u root -p password
-dp jdbc/postgresql-42.2.6.jar
Run Code Online (Sandbox Code Playgroud)
JavaScript 实现依赖于 Nashorn JavaScript 引擎,该引擎在版本 15 中已从 JDK 中删除,因此您必须使用 JDK <= 14。