幸福一箩筐|一键生成数据库文档,堪称数据库界的Swagger,有点厉害
最近部门订单业务调整 , 收拢其他业务线的下单入口 , 做个统一大订单平台 。 需要梳理各业务线的数据表 , 但每个业务线库都有近百张和订单相关的表 , 挨个表一个一个字段的弄脑瓜子嗡嗡的 。
为了不重复 CV 操作 , 抱着一丝希望开始在GitHub里找 , 看看有没有什么工具可以用 , 结果就真的发现了宝藏 , screw(螺丝钉) , 居然可以生成数据库文档 , 优秀啊~ 。
本文插图
【幸福一箩筐|一键生成数据库文档,堪称数据库界的Swagger,有点厉害】
- MySQL
- MariaDB
- TIDB
- Oracle
- SqlServer
- PostgreSQL
- Cache DB
本文插图
配置数据源 , 设置 useInformationSchema 可以获取tables注释信息 。
spring.datasource.url=jdbc:mysql://45.93.1.5:3306/fire?useUnicode=true&characterEncoding=UTF-8&useSSL=falsespring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.xa.properties.useInformationSchema=truescrew有两种执行方式 , 第一种是pom文件配置 , 另一种是代码执行 。org.springframework.bootspring-boot-maven-plugincn.smallbun.screwscrew-maven-plugin1.0.3com.zaxxerHikariCP3.4.5mysqlmysql-connector-java8.0.20root123456com.mysql.cj.jdbc.Driverjdbc:mysql://41.92.6.5:3306/fireHTMLfalsefreemarker数据库文档生成${project.version}fire数据库文档compilerun配置完以后在 maven project->screw 双击执行ok 。本文插图
代码生成方式也非常简单 。
@SpringBootTestpublic class ScrewApplicationTests {@AutowiredApplicationContext applicationContext;@Testvoid contextLoads() {DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);// 生成文件配置EngineConfig engineConfig = EngineConfig.builder()// 生成文件路径 , 自己mac本地的地址 , 这里需要自己更换下路径.fileOutputDir("D:/")// 打开目录.openOutputDir(false)// 文件类型.fileType(EngineFileType.HTML)// 生成模板实现.produceType(EngineTemplateType.freemarker).build();// 生成文档配置(包含以下自定义版本号、描述等配置连接)Configuration config = Configuration.builder().version("1.0.3").description("生成文档信息描述").dataSource(dataSourceMysql).engineConfig(engineConfig).produceConfig(getProcessConfig()).build();// 执行生成new DocumentationExecute(config).execute();}/*** 配置想要生成的表+ 配置想要忽略的表** @return 生成表配置*/public static ProcessConfig getProcessConfig() {// 忽略表名List ignoreTableName = Arrays.asList("a", "test_group");// 忽略表前缀 , 如忽略a开头的数据库表List ignorePrefix = Arrays.asList("a", "t");// 忽略表后缀List ignoreSuffix = Arrays.asList("_test", "czb_");return ProcessConfig.builder()//根据名称指定表生成.designatedTableName(Arrays.asList("fire_user"))//根据表前缀生成.designatedTablePrefix(new ArrayList<>())//根据表后缀生成.designatedTableSuffix(new ArrayList<>())//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();}}screw 有 HTML、DOC、MD 三种格式的文档 。代码中的修改
.fileType(EngineFileType.HTML)或者pom文件 MD 本文插图
本文插图
本文插图
不得不说这个工具是真TM好用 , 提前完成任务 , 有点傲娇有木有!
推荐阅读
- 1碗面粉,不加水,锅里蒸一蒸,做香甜可口的发糕,比蛋糕还香
- 教你自制岩烧乳酪
- 春天湿气重,多喝这碗糖水,祛湿清热又甘甜,我隔两天喝一次
- 从小就馋此口,比肉香多了,几块钱做一大盘,咋吃都不腻
- 别再买坚果零食吃了,自己在家就能做,酥脆香甜,没有一点苦涩味!
- 剩米饭别再炒了,试试这样做,比蛋炒饭好吃一百倍
- 一碗糯米,半个南瓜,香甜软糯,好吃不上火,比南瓜饼香,太好吃
- 猪蹄肥而不腻,能够给粥带来肉香,满满的胶原蛋白,幸福感倍增
- 南瓜新吃法,不放面粉,柔软香甜,咬一口满嘴香,隔三差五做一次
- 3月必吃的6种「春菜」,降压减脂又刮油,错过又要等一年
