使用PostgreSQL生成数据库表格图的工具?

204

有什么免费工具可以生成 PostgreSQL 表格图表吗?


8
由于这个问题已经关闭,我在软件推荐SE上提问了:从PostgreSQL数据库生成数据库表图 - Franck Dernoncourt
1
最好并且有帮助的是,在Stack Exchange社区下添加一个适当的网站建议来提问。 - Jeb50
一句话,dbeaver。开箱即用。此外,您可以参考 https://wiki.postgresql.org/wiki/Design_Tools。 - ivorynoise
一个很好的解决方案是使用Intellij IDEA / Datagrip:右键单击数据库表名> Diagram > Show Visualization -> 顶部某个图标导出图表 > 在Web编辑器中打开 > (选择您更喜欢的) - forhadmethun
7个回答

217

我喜欢使用schemaspy进行模式可视化。看看他们提供的样本输出,让人口水直流。请注意选项卡!

您需要在此处下载JDBC驱动程序,然后您的命令应该如下所示:

java -jar schemaspy-6.0.0-rc2.jar -t pgsql -db database_name -host myhost -u username -p password -o ./schemaspy -dp postgresql-9.3-1100.jdbc3.jar -s public -noads

有时,如果您的数据库端口不同,使用选项-port可能无法正常工作,因此您必须在主机参数之后手动添加端口,例如:
java -jar schemaspy-6.0.0-rc2.jar -t pgsql -db database_name -host myhost:myport -u username -p password -o ./schemaspy -dp postgresql-9.3-1100.jdbc3.jar -s public -noads

如果你想要图形化界面,你需要安装graphviz(对于基于debian的发行版可以使用apt-get install graphviz命令)。


8
其实它是 graphviz :) - visionary
3
Schemaspy 在第一次尝试时就做到了这一点。生成的图表布局很棒(即使在我们复杂的表集上也是如此)。当 100 张表引用同一张表时,会有重叠的线条;但是总体布局进行了补偿,非常清晰 / 可追溯。 - pretzels1337
5
对于graphviz,只需将-gv /path_to/graphviz添加到命令中即可。 - AzizSM
5
在 Mac 上,我不得不添加:-renderer:quartz 来避免这个错误:-Tcmapx' 失败,返回代码 139。 - slashdottir
8
在Mac上使用Docker运行此命令:docker run -v `pwd`/diagram:/output schemaspy/schemaspy:snapshot -t pgsql --port 5432 -u postgres -db <dbname> -host docker.for.mac.localhost -p <password> - a-h
显示剩余10条评论

33

SchemaCrawler for PostgreSQL能够利用GraphViz在命令行中生成数据库图表。您可以使用正则表达式来包含和排除表格和列。如果没有定义外键,它还可以通过常见的命名约定推断表之间的关系。


19

我找到的快速解决方案是在Windows版本的pgAdmin程序中。 在“工具”菜单下有一个“查询工具”。 在查询工具中,有一个图形化查询构建器,可以快速显示数据库表的详细信息。 适合进行基础查看


1
我不知道如何在pgAdmin 1.20.0中使用外键自动绘制关系。这个功能被支持吗? - pyb
1
不错的提示,尽管看起来你必须使用查询连接自己绘制所有的外键。 - Andrew Swan
10
此功能于2016年在PgAdmin 4中被移除。虽然可能会重新实现,但截至2019年尚未重现。 - Noumenon
请参考 此答案 了解在 pgAdmin 4 版本30或更高版本中如何生成ERD。 - Steve Chambers


9

通过Frank Heikens在Postgres社区指南中提到的信息,我发现了http://www.sqlpower.ca/page/architect。它能够轻松地生成一个图表,并且让你调整连接器!


我无法让它正常工作,一直出现ArrayIndexOutOfBoundException错误。 - FuriousFolder

7

PostgreSQL Autodoc 对我很有帮助。这是一个简单的命令行工具。根据网页上的介绍:

该实用程序将遍历 PostgreSQL 系统表,并返回描述数据库的 HTML、Dot、Dia 和 DocBook XML。


3
链接无法访问。经过谷歌搜索,找到了https://github.com/cbbrowne/autodoc,但似乎已经不再维护。 - nelsonic
@nelsonic 确实。我应该交换链接吗?这似乎不是同一个维护者。看起来像某种分支。 - Faheem Mitha
我在GitHub上询问了作者该项目是否正在维护:https://github.com/cbbrowne/autodoc/issues/2 - nelsonic
@nelsonic 是的,我看到回复了。我也发布了 https://bugs.debian.org/820208 - Faheem Mitha
2
您可以通过以下方式从dot文件创建png:dot -Tpng my_database.dot -o my_database.png - Kris

2
在Eclipse中,我使用了Clay插件(前身为Clay-Azurri)。免费版本允许通过JDBC检查(“反向工程”)现有的DB模式,并绘制一些选定表的图表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接