开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式

在数据密集型应用的开发过程中,数据库设计和管理是一个不可或缺的环节。Screw,一个开源的数据库表结构文档化工具,就是为了简化这一过程而生。它能够将数据库表结构转化为直观的文档,帮助技术团队更好地理解和维护数据库架构。

项目地址:

https://gitee.com/leshalv/screw

工具介绍

Screw是一个能够自动化生成数据库表结构文档的工具。它以用户友好,易于操作的特性受到了开发社区的热烈欢迎。通过Screw,开发者可以快速地获取数据库的详细信息,并生成多种格式的文档,如HTML、Markdown、Word等。

开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式


功能概述

  • 支持多数据库:兼容主流的数据库系统,包括MySQL、Oracle、PostgreSQL等。
  • 多格式输出:支持多种文档格式输出,满足不同场景的需求。
  • 自动化流程:自动读取数据库结构信息,减少重复工作量。
  • 定制化文档:可根据需要定制文档的内容和样式。

开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式

开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式

开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式

组件

Screw的主要组件包括:

  • 数据采集器:负责从数据库中采集表、字段、索引等信息。
  • 格式化器:将采集到的数据格式化为不同的文档格式。
  • 配置处理器:解析用户的配置信息,确保文档按需生成。

核心技术

Screw的核心技术体现在其自动化和定制化的能力上:

  • 反射机制:通过Java反射技术动态读取数据库元数据。
  • 模板引擎:使用模板引擎生成不同格式的文档。
  • 配置灵活性:支持灵活的配置选项,以适应各种不同的需求。

前后端技术栈

Screw是一个以Java为主要开发语言的后端工具,不依赖特定的前端技术栈,可以与任何前端系统无缝集成。

  • 后端:基于Java,利用Spring Boot简化了部署和配置。

部署方式

部署Screw非常简单:

  1. 源代码下载:从Gitee仓库下载Screw源代码。
  2. 环境配置:确保Java环境安装正确,可以使用Maven或Gradle进行依赖管理。
  3. 编辑配置:根据需要编辑应用的配置文件。
  4. 构建工具:使用Maven或Gradle构建工具,编译并启动Screw。

初始化

初始化过程包括:

  1. 配置数据库信息:在配置文件中设置数据库连接信息。
  2. 选择文档格式:确定输出文档的格式和风格。
  3. 运行Screw:运行Screw,生成对应的数据库文档。

命令:

引入依赖

<dependency>
    <groupId>cn.smallbun.screw</groupId>
    <artifactId>screw-core</artifactId>
    <version>${lastVersion}</version>
 </dependency>

修改数据库链接

/**
 * 文档生成
 */

void documentGeneration() {
   //数据源
   HikariConfig hikariConfig = new HikariConfig();
   hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
   hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");
   hikariConfig.setUsername("root");
   hikariConfig.setPassword("password");
   //设置可以获取tables remarks信息
   hikariConfig.addDataSourceProperty("useInformationSchema""true");
   hikariConfig.setMinimumIdle(2);
   hikariConfig.setMaximumPoolSize(5);
   DataSource dataSource = new HikariDataSource(hikariConfig);
   //生成配置
   EngineConfig engineConfig = EngineConfig.builder()
         //生成文件路径
         .fileOutputDir(fileOutputDir)
         //打开目录
         .openOutputDir(true)
         //文件类型
         .fileType(EngineFileType.HTML)
         //生成模板实现
         .produceType(EngineTemplateType.freemarker)
         //自定义文件名称
         .fileName("自定义文件名称").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()
         //生成逻辑、当存在表、表前缀、表后缀时,将生成表,其余表不生成、并跳过忽略表配置 
   //根据名称表生成
   .designatedTableName(new ArrayList<>())
   //根据表前缀生成
   .designatedTablePrefix(new ArrayList<>())
   //根据表后缀生成 
   .designatedTableSuffix(new ArrayList<>())
         //忽略表名
         .ignoreTableName(ignoreTableName)
         //忽略表前缀
         .ignoreTablePrefix(ignorePrefix)
         //忽略表后缀
         .ignoreTableSuffix(ignoreSuffix).build();
   //配置
   Configuration config = Configuration.builder()
         //版本
         .version("1.0.0")
         //描述
         .description("数据库设计文档生成")
         //数据源
         .dataSource(dataSource)
         //生成配置
         .engineConfig(engineConfig)
         //生成配置
         .produceConfig(processConfig)
         .build();

详细体验

使用Screw,用户将体验到:

  • 直观的界面:虽然Screw主要是后端工具,但它生成的文档具有清晰和直观的界面,易于理解。
  • 快速的文档生成:Screw的运行效率高,可以快速生成大型数据库的文档。
  • 定制化文档:用户可以通过配置文件控制文档的生成,满足个性化需求。

还可以自定义多数据源,然后进行导出HTML、Markdown、Word格式文档,不再烦恼客户提出需要数据库字典的要求。

开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式


结语

Screw不仅仅是一个工具,它是一个桥梁,连接了数据库的复杂性和团队的沟通效率。

Screw并不是一个单独的产品,而是一个集成方案的一部分,它提升我们的工作效率,让我们能够更专注于创新和业务本身。让我们继续探索Screw如何在软件开发和数据管理的世界中发挥其独特的价值。


原文始发于微信公众号(souvc):开源|一个数据库表结构文档化工具,支持HTML、Markdown、Word格式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/205760.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!