Graphviz 错误现在破坏了 schemaspy 数据库的生成

Graphviz error now breaking schemaspy db generation

我一直在使用 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

为了解决这个问题,我尝试过:

想弄清楚如何让它再次工作。


[编辑] 我没有找到解决 SchemaSpy/Graphviz 停止工作的原因(或者 wtf "code 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/... 是 运行

之后输出将显示的位置

默认情况下,SchemaSpy 期望点可执行文件位于 PATH 环境变量中。使用此选项明确指定 Graphviz 的安装位置。

如果您不想将它添加到您的 PATH 中,您可以使用 -gv 参数并提供 Graphviz 的安装路径。

更新

  • 如果您在比 High Sierra 更早的 OS X 版本上使用 GraphViz 版本 2.40.1,请将 -renderer :quartz 添加到命令行。
  • 如果您在 OS X 版 High Sierra 或更高版本上使用 GraphViz 2.40.1 版,请将 -renderer :cairo 添加到命令行。

High Sierra 的工作修复:

brew uninstall graphviz

之后运行:

brew install graphviz --with-librsvg --with-pango

来源:https://github.com/schemaspy/schemaspy/issues/33/#issuecomment-355091538

如果您使用的是 macOs HighSierra,则正确的调用是没有渲染器并(重新)安装 Graphviz:

brew reinstall graphviz --with-librsvg --with-pango

我试过上面的方法,但对我不起作用。

运行 在 mojave 上,我无法使 brew 安装正常工作(由于缺少 pango 库)。也许这会在未来更新,但在撰写本文时,我不得不切换到 Macports 安装,这对我有用。

还有 运行 schemaspy 6.0.0 和 Graphviz 2.40.1。

更新此问题。 Homebrew 最近对安装软件包时添加选项进行了更改……他们不再允许了。 :)

https://brew.sh/2019/02/02/homebrew-2.0.0/

建议使用 brew edit graphviz 并在其中添加所需的参数。我现在正在尝试。

SchemaSpy 6.1.0版本去掉了对GraphViz的依赖,使用这个版本可以避免这个问题


版本 6.1.0 尚未发布,但您可以 download a snapshot。此版本包含 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

现在(自 2021 年起)使用 brew 安装 graphviz 会默认安装 librsvg 和 pango。无需传递 --with-* 选项:正如其他人评论的那样,它们也不再有效。

只需 运行 brew install graphviz 并确保您根据已接受的答案和项目常见问题解答使用正确的渲染器选项。

Mac 版本:卡特琳娜 10.15.7

完整依赖列表:

==> Installing dependencies for graphviz: libpng, freetype, fontconfig, jpeg, libtiff, giflib, webp, gd, gettext, libffi, pcre, gdbm, mpdecimal, ca-certificates, openssl@1.1, readline, sqlite, xz, python@3.9, glib, jasper, netpbm, gts, pkg-config, libpthread-stubs, xorgproto, libxau, libxdmcp, libxcb, libx11, libxext, libxrender, lzo, pixman, cairo, gdk-pixbuf, fribidi, gobject-introspection, graphite2, icu4c, harfbuzz, pango, librsvg, m4 and libtool