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
为了解决这个问题,我尝试过:
- uninstall/reinstall 图形化
- 降级 Graphviz(v2.38 - 这是我能找到的唯一版本,自制软件也没有任何旧版本)但它阻碍了我的安装
- 试图 运行 在同事的计算机上得到相同的结果
- 尝试了 schemaspy(v6.0-beta3) 的新测试版
- 搜索 graphviz 论坛(页面崩溃)、Whosebug 和一般 google 搜索。
想弄清楚如何让它再次工作。
[编辑]
我没有找到解决 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/... 是 运行
之后输出将显示的位置
默认情况下,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
我一直在使用 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
为了解决这个问题,我尝试过:
- uninstall/reinstall 图形化
- 降级 Graphviz(v2.38 - 这是我能找到的唯一版本,自制软件也没有任何旧版本)但它阻碍了我的安装
- 试图 运行 在同事的计算机上得到相同的结果
- 尝试了 schemaspy(v6.0-beta3) 的新测试版
- 搜索 graphviz 论坛(页面崩溃)、Whosebug 和一般 google 搜索。
想弄清楚如何让它再次工作。
[编辑] 我没有找到解决 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/... 是 运行
之后输出将显示的位置默认情况下,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