SchemaSpy生成ER图失败:GraphViz配置异常求助
问题:SchemaSpy无法转换.dot文件生成ER图(GraphViz配置问题)
问题现象
- SchemaSpy已成功生成数据库表的HTML文件及对应的.dot文件,但无法将.dot文件转换为ER图并嵌入HTML页面展示
- 执行过程中核心报错为
Dot missing or invalid version
版本信息
- Java:v8
- SchemaSpy:v6.1.0
- Graphviz:dot - graphviz version 7.0.2 (20221119.0110)
- MySQL驱动:mysql-connector-java-8.0.30.jar
执行命令
java -jar .\schemaspy-6.1.0.jar -t mysql -dp C:\mysql-connector-java-8.0.30.jar -db datagenerator_poc -gv 'C:\Program Files (x86)\Graphviz' -host 127.0.0.1 -port 5000 -s mysql -u root -p staging123 -o /SchemaSpy
关键报错日志
INFO - Graphviz rendered set to ''
ERROR - RelationShipDiagramError
Failed to produce diagram for: \SchemaSpy\diagrams\summary\relationships.implied.compact.dot
...
Exception in thread "main" java.lang.reflect.InvocationTargetException
...
Caused by: org.schemaspy.output.diagram.DiagramException: Dot missing or invalid version
解决方案
1. 修正Graphviz路径参数
命令中-gv参数必须指向dot.exe的完整路径,而非Graphviz的安装根目录。SchemaSpy需要直接调用dot工具来转换文件,仅指定目录无法定位到执行程序。
修改后的命令示例:
java -jar .\schemaspy-6.1.0.jar -t mysql -dp C:\mysql-connector-java-8.0.30.jar -db datagenerator_poc -gv "C:\Program Files (x86)\Graphviz\bin\dot.exe" -host 127.0.0.1 -port 5000 -s mysql -u root -p staging123 -o /SchemaSpy
2. 验证Graphviz工具可用性
- 打开命令提示符,执行
dot -V,确认能正常返回版本信息 - 如果执行报错,检查Graphviz的
bin目录是否已添加到系统环境变量PATH中;若未添加,后续调用需始终使用dot.exe的完整路径
3. 检查路径格式与权限
- Windows系统下,路径包含空格时需用双引号包裹,避免解析错误
- 确认SchemaSpy对输出目录
/SchemaSpy拥有读写权限,防止生成的文件无法被访问或修改
内容的提问来源于stack exchange,提问作者iUbaid
相关产品推荐
相关产品推荐

