开源数据库表结构文档生成器
共 1969字,需浏览 4分钟
·
2021-11-09 16:33
大家好,我是TJ
一个励志推荐10000款开源项目与工具的程序员
TJ君前几天和一个在银行科技部上班的同学聚会,同学跟TJ君吐槽,一些小银行的科技表面看上去专业,实际各种马虎不负责。
打个比方,有一次同学被委托一个需求,要去查另一个系统的一些数据汇总用来展示,其实是一个很简单的需求,同学的第一反应是去问负责这另一个系统的科技同事把后台数据的白皮书要过来,也就是系统后台表结构文档,结果被告知没有。。。嗯。。就是没有。。。
然后同学只好到处找人去问,去问做这个源系统的开发关于后台的表结构(这里要解释下的是开发并不是银行科技部人员,一般小银行的开发都是外包出去给第三方厂商),结果因为第三方厂商人员流动比较快,开发人员已经换了一波,现在的开发人员完全没有交接过这块内容,只好从底层开始查代码,最后好不容易告诉同学需要查什么表什么字段,还担心有什么不知道的特殊情况导致错误。按同学的说法就是一个文档能解决的很简单的事情,却因为没有人去有责任心的完成这个文档,最终导致要用的人麻烦憋屈死了。
相信同学的遭遇不少程序猿小伙伴也遇到过,越是大型的项目,后台数据库表的复杂程度越高,如果要编写一份完整清晰的数据库表结构文档的话,需要开发人员大量时间及责任心的付出,很多人一偷懒,这个文档就是纸上谈兵不存在,稍好点的项目可能上线初期有这样一个文档,但是后续维护变更一旦换了人,可能新加的字段就没有再继续维护进去,导致文档缺失不全,再有后来人接手相关工作就会容易出错,也就是我们常说的这个项目怎么那么多坑!
虽然TJ君觉得完善其他系统的表结构文档,不是同学应该去做的工作,但还是想着有没有什么工具可以帮助同学呢?
于是TJ君想起了一个之前看到过的GitHub开源项目,screw,一款简洁好用的数据库表结构文档生成器,似乎天生就是为了解决同学这个问题而存在的。
screw支持多种不同类型的数据库,快速生成库中表的表结构,工具的主要特点如下:
简洁、轻量、设计良好
多种格式文档
可灵活扩展
支持自定义模板
目前已支持的主流数据库有:
MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB(2016)
其余的像 DB2、H2、HSQL、SQLite等数据库作者正在开发中。
导出的表结构文档可以按用户的要求导出成三种格式,html、word、markdown
工具使用起来也不难,只需要先在Maven插件配置文件中引入依赖
<dependency>
<groupId>cn.smallbun.screwgroupId>
<artifactId>screw-coreartifactId>
<version>${lastVersion}version>
dependency>
然后再导入主方法类,将其中的数据库连接部分及导出部分修改成自己需要的内容,再运行程序就可以了。
//数据库的配置,改成你自己的数据库连接
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");
hikariConfig.setUsername("root");
hikariConfig.setPassword("password");
//生成文件的配置,看你要生在哪里生成什么格式
EngineConfig engineConfig = EngineConfig.builder()
//生成文件的路径
.fileOutputDir(fileOutputDir)
//打开目录
.openOutputDir(true)
//文件类型
.fileType(EngineFileType.HTML)
//生成模板实现
.produceType(EngineTemplateType.freemarker)
//自定义文件名称
.fileName("自定义文件名称").build();
导出的数据库表结构文档效果如下:
非常清晰,不过让TJ君失望的是,同学告诉TJ君银行不允许用开源工具,不过相信这款工具肯定对各位程序猿小伙伴有所帮助,大家赶紧来用用看吧,仓库地址如下:
点击下方卡片,关注公众号“TJ君”
回复“表结构生成”,获取仓库地址
关注我,每天了解一个牛x、好用、有趣的东东