BAT大牛都在使用的数据库文档生成插件,不来看一下?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: BAT大牛都在使用的数据库文档生成插件,不来看一下?

一、概述



在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后面接手的人。之前有一段时间开发了一个项目,是那种开发完后后期补充文档的。写数据库文档的时候特别恶心,需要对着数据库中的表和表字段。当表特别多的时候,眼睛都会看花。不知道大家是否有过这种经历,我当时是采取笨方法一个表一个字段写的,恶心坏了。最近在github上发现了一个数据库文档插件,挺不错的,介绍给大家,住大家脱离数据库文档编写的苦海。


二、插件介绍



  1. screw自动生成数据库文档
  2. 支持多种格式文档:html、word和markdown
  3. 支持多种类型的数据库:MySQL、MariaDB、TIDB、Oracle、SqlServer、PostgreSQL和Cache DB


三、插件运用



  1. 在数据库中新建表格(没有具体含义,纯粹是为了演示)


SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for account_type
-- ----------------------------
DROP TABLE IF EXISTS `account_type`;
CREATE TABLE `account_type` (
  `id` tinyint unsigned NOT NULL COMMENT '主账号 0, 附属账号 1',
  `type` varchar(50) DEFAULT '主账号',
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='账户类型字典表';
-- ----------------------------
-- Table structure for iap_order
-- ----------------------------
DROP TABLE IF EXISTS `iap_order`;
CREATE TABLE `iap_order` (
  `transaction_id` varchar(200) NOT NULL COMMENT '交易方式',
  `principal_id` bigint unsigned DEFAULT NULL COMMENT 'userId可能为null',
  `product_id` bigint unsigned DEFAULT NULL COMMENT 'product id',
  `apple_id` bigint unsigned DEFAULT NULL COMMENT 'apple id',
  `receipt_data` longtext COMMENT '完整的receipt',
  `platform` varchar(20) DEFAULT NULL COMMENT '平台',
  `status` tinyint unsigned DEFAULT '0' COMMENT '订单状态 ',
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`transaction_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='IAP订单';
-- ----------------------------
-- Table structure for points_rule
-- ----------------------------
DROP TABLE IF EXISTS `points_rule`;
CREATE TABLE `points_rule` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '规则id',
  `member_level` int DEFAULT NULL COMMENT '用户规则适用等级',
  `daily_video_view_points` int DEFAULT NULL COMMENT '每日观看视频积分',
  `daily_article_view_points` int DEFAULT NULL COMMENT '每日阅读文章积分',
  `daily_video_share_points` int DEFAULT NULL COMMENT '每日分享视频积分',
  `daily_article_share_points` int DEFAULT NULL COMMENT '每日分享文章积分',
  `daily_comment_post_points` int DEFAULT NULL COMMENT '每日评论积分',
  `daily_login_points` int DEFAULT NULL COMMENT '每日登陆积分',
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='积分规则';


  1. 在项目中引入插件(可以直接复制过去,开箱即用)


<plugin>
                <groupId>cn.smallbun.screw</groupId>
                <artifactId>screw-maven-plugin</artifactId>
                <version>1.0.4</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>123456</password>
                    <!--driver-->
                    <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
                    <!--jdbc url-->
                    <jdbcUrl>jdbc:mysql://192.168.1.7:3306/db?useUnicode=true&amp;zeroDateTimeBehavior=convertToNull&amp;autoReconnect=true</jdbcUrl>
                    <!--生成文件类型,支持HTML WORD MD 共3种文件格式-->
                    <fileType>HTML</fileType>
                    <!--打开文件输出目录-->
                    <openOutputDir>false</openOutputDir>
                    <!--生成模板-->
                    <produceType>freemarker</produceType>
                    <!--文档名称 为空时:将采用[数据库名称-描述-版本号]作为文档名称-->
                    <fileName>db数据库表说明文档</fileName>
                    <!--描述-->
                    <description>表和字段说明</description>
                    <!--版本-->
                    <version>1.0.0.0</version>
                    <!--标题-->
                    <title>数据库文档</title>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


  1. 调用screw插件

640.png


  1. 结果演示


文档生成地址:根目录下doc文件下

640.png


html数据库文档演示:

640.png


怎么样,是不是眼前一亮,简直和我们日常写的数据库文档一样,你是不是也手痒痒了,来试一下吧!可以节省很多数据库文档编写和维护时间。


四、总结



这个插件使用起来特别方便,开箱即用。但是在创建表格的时候,需要对每个字段和表做好描述。不然输出的数据库文档可能就不能满足我们的使用了。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
运维 Oracle 关系型数据库
screw生成数据库文档
screw生成数据库文档
29 12
|
3月前
|
JavaScript 小程序 Java
学习辅助|基于SSM+vue的学习辅助系统的设计与实现(源码+数据库+文档)
学习辅助|基于SSM+vue的学习辅助系统的设计与实现(源码+数据库+文档)
44 0
|
1月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的《数据库原理及应用》课程平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的《数据库原理及应用》课程平台的详细设计和实现(源码+lw+部署文档+讲解等)
|
18天前
|
SQL Oracle 关系型数据库
.NET 开源快捷的数据库文档查询和生成工具
【8月更文挑战第1天】推荐几款.NET开源数据库文档工具:1. DBDocumentor,支持多类型数据库,快速生成详尽文档;2. SqlDoc,界面简洁,自定义内容与格式;3. DBInfo,强大查询功能,支持多种导出格式。这些工具有效提升文档管理效率与质量。
|
2月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的数据库课程在线教学的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的数据库课程在线教学的详细设计和实现(源码+lw+部署文档+讲解等)
32 2
|
2月前
|
存储 JSON NoSQL
【文档数据库】ES和MongoDB的对比
【文档数据库】ES和MongoDB的对比
232 1
|
3月前
|
JavaScript Java 关系型数据库
废物回收机构|基于SprinBoot+vue的地方废物回收机构管理系统(源码+数据库+文档)
废物回收机构|基于SprinBoot+vue的地方废物回收机构管理系统(源码+数据库+文档)
77 18
|
3月前
|
JavaScript Java 关系型数据库
志愿者招募|基于SSM+vue的志愿者招募网站系统的设计与实现(源码+数据库+文档)
志愿者招募|基于SSM+vue的志愿者招募网站系统的设计与实现(源码+数据库+文档)
68 16
|
2月前
|
PHP 数据库 数据安全/隐私保护
Duplicator插件如何进行数据库备份?
【6月更文挑战第4天】Duplicator插件如何进行数据库备份?
60 1
|
3月前
|
JavaScript Java 关系型数据库
卤菜销售|基于SSM+vue的智能卤菜销售平台的设计与实现(源码+数据库+文档)
卤菜销售|基于SSM+vue的智能卤菜销售平台的设计与实现(源码+数据库+文档)
64 15