db2doc 是一款数据库文档工具,使用本工具可以基于 sql 快速生成 markdown、html和word文档,本工具已经封装为docker镜像,可以在安装了docker的电脑上执行,不限操作系统,且支持x86和arm64架构。也就是说这个镜像在m1芯片的mac、树莓派电脑和华为的鲲鹏系列等arm服务器上都可以直接运行,不用再行适配。

基本用法

docker run --rm -v $(pwd):/opt/data/ \
-e DB_NAME=demo -e DATA_DIR=/opt/data/ -e DOC_TYPE=word \
pi4k8s/db2doc:1.0

参数说明
  • DB_NAME:数据库脚本文件名称(不带sql后缀),如示例sql脚本名称为demo.sql,则上述命令参数位置为demo;上述命令执行示例中,该脚本文件应该放在宿主机当前目录
  • DATA_DIR:数据目录,数据库脚本文件需要放在本目录,后续数据库文档也会生成在该目录,该目录是容器内目录;上述命令执行示例中,对应在宿主机当前目录
  • DOC_TYPE:生成文档类型,可为html、word和md,可分别在数据目录下生成对应类型文档

进阶用法

本工具封装了screw,这是一款号称数据库界的swagger的组件,感兴趣的同学可以看这里 ​https://gitee.com/rayson517/screw-pro​,截止笔者制作本工具的时候,screw已经支持了包括MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB在内的多种类型数据库的文档生成,笔者在screw基础上,增加了H2的支持。所以除了H2外,其实它也支持直连MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB等实时服务生成数据库文档,下面介绍一种直连Mysql数据库的用法,供各位同学参考。

准备

1、准备配置文件:application.yml,文件内容如下

spring:
datasource:
username: root
password: root
url: jdbc:mysql://cihost/jeecg-boot?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
schema:

fastjrun:
db2doc:
dataDir: /opt/data/
docType: html
ignoreTableName: ${IGNORE_TABLE_NAME:aa,test_group}
ignorePrefix: ${IGNORE_PREFIX:test_,example_}
ignoreSuffix: ${IGNORE_SUFFIX:_test,+example}

当前目录新建config目录,将application.yml放在config目录下。


2、准备驱动:如mysql-connector-java-8.0.13.jar

将mysql-connector-java-8.0.13.jar也放在config目录下

执行

docker run --rm -v $(pwd)/config/:/opt/config/ -v $(pwd):/opt/data/ \
-e JVM_OPTS=-Xbootclasspath/a:/opt/config/mysql-connector-java-8.0.13.jar \
pi4k8s/db2doc:1.0


附源码地址:

​https://gitee.com/fastjrun/db2doc​