实用!一键生成数据库文档,堪称数据库界的Swagger

网友投稿 612 2023-05-20

实用!一键生成数据库文档,堪称数据库界的Swagger

实用!一键生成数据库文档,堪称数据库界的Swagger

最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台。需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的。

为了不重复 CV 操作,抱着一丝希望开始在GitHub里找,看看有没有什么工具可以用,结果就真的发现了宝藏,screw(螺丝钉),居然可以生成数据库文档,优秀啊~。

数据库文档图

一、数据库支持

MySQL

MariaDB

TIDB

***

SqlServer

***

Cache DB

二、配置

1、pom文件

引入screw核心包,HikariCP数据库连接池,HikariCP号称性能最出色的数据库连接池。

2、配置数据源

配置数据源,设置 useInformationSchema 可以获取tables注释信息。

3、screw 核心配置

screw有两种执行方式,第一种是pom文件配置,另一种是代码执行。

配置完以后在 maven project->screw 双击执行ok。

运行方式

代码生成方式也非常简单。

@SpringBootTest  public class ScrewApplicationTests {      @Autowired      ApplicationContext applicationContext;      @Test      void 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();      }  }

4、文档格式

screw 有 HTML、DOC、MD 三种格式的文档。

代码中的修改

.fileType(EngineFileType.HTML)

或者pom文件

MD

DOC文档样式

DOC文档

HTML文档样式

HTML文档

MD文档样式

MD文档

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库实践丨MySQL多表join分析
下一篇:怎么找到上锁的 SQL 语句
相关文章