组件分享之后端组件——从 postgres 数据库模式生成DOT描述工具dbdot

组件分享之后端组件——从 postgres 数据库模式生成DOT描述工具dbdot

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:dbdot
  • 开源协议: MIT license

内容

本节我们分享一个从 postgres 数据库模式生成DOT描述。工具dbdot
它是一个二进制文件,可以直接进行安装使用,具体安装包可以在这里进行获取到。

具体使用如下:

$ ./dbdot -dbname=pgguide -user=kewluser                                                                                                       [16:33:31]
digraph  {

    node[label=<[]
products
idinteger
titlecharacter varying
pricenumeric
created_attimestamp with time zone
deleted_attimestamp with time zone
tagsARRAY
>,shape=plaintext] n1; node[label=<[]
purchase_items
idinteger
purchase_idinteger
product_idinteger
pricenumeric
quantityinteger
statecharacter varying
>,shape=plaintext] n2; node[label=<[]
users
idinteger
emailcharacter varying
passwordcharacter varying
detailsUSER-DEFINED
created_attimestamp with time zone
deleted_attimestamp with time zone
>,shape=plaintext] n3; node[label=<[]
purchases
idinteger
created_attimestamp with time zone
namecharacter varying
addresscharacter varying
statecharacter varying
zipcodeinteger
user_idinteger
>,shape=plaintext] n4; n2->n1; n2->n4; n4->n3; }

生成模式图

./dbdot -dbname=pgguide -user=kewluser > test.dot && dot -Tpng test.dot -o outfile.png && open outfile.png
image.png

将表列入白名单并为其生成架构图

./dbdot -dbname=pgguide -user=kewluser > test.dot --whitelist=purchase_items,purchases && dot -Tpng test.dot -o outfile-whitelisted.png && open outfile-whitelisted.png
image.png

具体使用方式可以参考如下:

  -W    ask for password
  -dbname string
        dbname for which you want to generate dot file
  -host string
        database host (default "localhost")
  -port uint
        database port (default 5432)
  -schema string
        schema name (default "public")
  -sslmode
        enable sslmode for postgres db connection
  -user string
        username of postgres db
  -whitelist string
        comma separated list of tables you want to generate dot file for
本文声明:

88x31.png

知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

你可能感兴趣的:(组件分享之后端组件——从 postgres 数据库模式生成DOT描述工具dbdot)