还在手动整理数据库文档?试试这个工具

运维 数据库运维
在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐。

 [[335513]]

 

简介

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人,于是需要一个插件工具screw[1]来维护。

screw 特点

  • 简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具
  • 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer
  • 多种格式文档。支持 MD、HTML、WORD 格式
  • 灵活扩展。支持用户自定义模板和展示样式

支持数据库类型

  • [✔️] MySQL
  • [✔️] MariaDB
  • [✔️] TIDB
  • [✔️] Oracle
  • [✔️] SqlServer
  • [✔️] PostgreSQL
  • [✔️] Cache DB

依赖

这里以 mysql8 数据库为例子

<!--数据库文档核心依赖--> 
 <dependency> 
     <groupId>cn.smallbun.screw</groupId> 
     <artifactId>screw-core</artifactId> 
     <version>1.0.2</version> 
 </dependency> 
 <!-- HikariCP --> 
 <dependency> 
     <groupId>com.zaxxer</groupId> 
     <artifactId>HikariCP</artifactId> 
     <version>3.4.5</version> 
 </dependency> 
 <!--mysql driver--> 
 <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>8.0.20</version> 
 </dependency> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

1. 通过自定义代码配置文档生成

 

@Test 
public void shouldAnswerWithTrue() { 
    //数据源 
    HikariConfig hikariConfig = new HikariConfig(); 
    hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver"); 
    hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test"); 
    hikariConfig.setUsername("root"); 
    hikariConfig.setPassword("root"); 
    //设置可以获取tables remarks信息 
    hikariConfig.addDataSourceProperty("useInformationSchema""true"); 
    hikariConfig.setMinimumIdle(2); 
    hikariConfig.setMaximumPoolSize(5); 
    DataSource dataSource = new HikariDataSource(hikariConfig); 
    //生成配置 
    EngineConfig engineConfig = EngineConfig.builder() 
            //生成文件路径 
            .fileOutputDir("/Users/lengleng"
            //打开目录 
            .openOutputDir(true
            //文件类型 
            .fileType(EngineFileType.HTML) 
            //生成模板实现 
            .produceType(EngineTemplateType.freemarker).build(); 
 
    //忽略表 
    ArrayList<String> ignoreTableName = new ArrayList<>(); 
    ignoreTableName.add("test_user"); 
    ignoreTableName.add("test_group"); 
    //忽略表前缀 
    ArrayList<String> ignorePrefix = new ArrayList<>(); 
    ignorePrefix.add("test_"); 
    //忽略表后缀 
    ArrayList<String> ignoreSuffix = new ArrayList<>(); 
    ignoreSuffix.add("_test"); 
    ProcessConfig processConfig = ProcessConfig.builder() 
            //忽略表名 
            .ignoreTableName(ignoreTableName) 
            //忽略表前缀 
            .ignoreTablePrefix(ignorePrefix) 
            //忽略表后缀 
            .ignoreTableSuffix(ignoreSuffix).build(); 
    //配置 
    Configuration config = Configuration.builder() 
            //版本 
            .version("1.0.0"
            //描述 
            .description("数据库设计文档生成"
            //数据源 
            .dataSource(dataSource) 
            //生成配置 
            .engineConfig(engineConfig) 
            //生成配置 
            .produceConfig(processConfig).build(); 
    //执行生成 
    new DocumentationExecute(config).execute(); 

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.

2. 通过插件的形式生成文档

<build> 
    <plugins> 
        <plugin> 
            <groupId>cn.smallbun.screw</groupId> 
            <artifactId>screw-maven-plugin</artifactId> 
            <version>1.0.2</version> 
            <dependencies> 
                <!-- HikariCP --> 
                <dependency> 
                    <groupId>com.zaxxer</groupId> 
                    <artifactId>HikariCP</artifactId> 
                    <version>3.4.5</version> 
                </dependency> 
                <!--mysql driver--> 
                <dependency> 
                    <groupId>mysql</groupId> 
                    <artifactId>mysql-connector-java</artifactId> 
                    <version>8.0.20</version> 
                </dependency> 
            </dependencies> 
            <configuration> 
                <!--username--> 
                <username>root</username> 
                <!--password--> 
                <password>root</password
                <!--driver--> 
                <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName> 
                <!--jdbc url--> 
                <jdbcUrl>jdbc:mysql://127.0.0.1:3306/test</jdbcUrl> 
                <!--生成文件类型--> 
                <fileType>HTML</fileType> 
                <!--文件输出目录--> 
                <fileOutputDir>/Users/lengleng</fileOutputDir> 
                <!--打开文件输出目录--> 
                <openOutputDir>false</openOutputDir> 
                <!--生成模板--> 
                <produceType>freemarker</produceType> 
                <!--描述--> 
                <description>数据库文档生成</description> 
                <!--版本--> 
                <version>${project.version}</version> 
                <!--标题--> 
                <title>数据库文档</title> 
            </configuration> 
            <executions> 
                <execution> 
                    <phase>compile</phase> 
                    <goals> 
                        <goal>run</goal> 
                    </goals> 
                </execution> 
            </executions> 
        </plugin> 
    </plugins> 
</build> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.

 

责任编辑:华轩 来源: JAVA架构日记
相关推荐

2020-12-21 09:40:16

数据库工具技术

2023-12-10 13:58:17

2023-04-18 18:22:31

开源工具数据库

2020-12-24 10:20:43

文档工具语言

2022-01-26 07:18:57

工具GoGo 项目

2011-03-07 17:02:07

2019-07-12 08:37:22

DockerNginx程序员

2022-02-09 07:44:30

Go源码工具

2019-04-08 14:58:36

数据库SQL数据类型

2023-03-29 07:02:46

开源项目工具

2011-05-19 13:25:12

Oracle数据库碎片

2021-06-24 16:18:03

Cube.js数据分析开源

2023-02-01 10:40:01

2011-05-13 13:54:02

数据库文档数据库

2019-12-19 16:10:36

前端开发刷新页面自动刷新

2019-11-06 14:13:55

开发者技能工具

2024-10-28 16:31:03

2021-10-26 10:15:34

Python股市代码

2022-09-19 07:06:03

SQL代码编辑器

2024-11-04 09:47:59

点赞
收藏

51CTO技术栈公众号