schemacrawler 未在 MS sql server db 的图形选项中显示关系/边

Posted

技术标签:

【中文标题】schemacrawler 未在 MS sql server db 的图形选项中显示关系/边【英文标题】:schemacrawler not showing relationships/edges in graph option for MS sql server db 【发布时间】:2015-05-12 04:42:17 【问题描述】:

我一直在尝试绘制 SQL Server 数据库中表子集的关系图。

我使用以下选项在 MAC 操作系统上运行 sc.sh:

-server=sqlserver -host=<host> -database=<schema> -user=<user> -password=<password> -infolevel="maximum" -command="graph" -schemas=<schema> -tables="<database>\.<schema>\.TABLE1|<database>\.<schema>\.TABLE2" -grepcolumns=".*\.PRIMARYKEY" -tabletypes=TABLE -outputformat=pdf -outputfile=diagram.pdf

我使用的 graphviz 版本是 2.28.0(如果我使用高于此的版本,schemacrawler 和 schemaSpy 都会出错)。

当我运行命令时,我得到了输出 pdf 文件。但它只包含表/节点及其列,没有应该链接 2 个表的关系/边。

我还尝试为数据库中的所有表生成图表,输出再次是所有表/节点及其列的图表,但没有任何关系/边。

我可以运行作为模式爬虫下载一部分的图表示例,并且输出确实显示了关系/边。

最后,我可以在 schemaSpy 中生成显示正确关系的图表。我想看看我是否可以在 schemacrawler 中为一组特定的表和列生成图表。

我使用 schemacrawler-12.04.02-main

【问题讨论】:

您的具体问题是什么? 为什么我看不到关系/边缘? 【参考方案1】:

Thomas,请使用 SchemaCrawler 12.05.02 或更高版本。检测弱关系或隐含关系的算法已得到增强,您现在应该可以看到想要在图中看到的边。

Sualeh Fatehi,SchemaCrawler

【讨论】:

谢谢 Sualeh。正如您所提到的,应该设置选项 -infolevel="maximum" 以查看图表中的关系。 SchemaCrawler 12.06.03 添加了隐藏图表中空表的选项:-hideemptytables

以上是关于schemacrawler 未在 MS sql server db 的图形选项中显示关系/边的主要内容,如果未能解决你的问题,请参考以下文章

sh SchemaCrawler的指令用法

检查 MS Access SQL 语句中的空值

MS 访问查询未在 Excel 中正确运行

MS Access 验证规则未在子表单中触发

从 ms 团队应用程序的命令框单击后,未在 bot 上获得任务/获取查询

一对一关系未在 MS Access 中的文本字段上正确连接