当前位置:   article > 正文

postgre 生成数据库html文档_还在手动整理数据库文档?试试这个工具?

postgresql 生成数据设计文档工具

de1fed5f0768de6faeb0ee67d92b993a.png

c12828eb401d7780aff236b36395ba76.png

简介

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

screw 特点

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

支持数据库类型

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

这里以 mysql8 数据库为例子

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

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

  1. @Test
  2. public void shouldAnswerWithTrue() {
  3. //数据源
  4. HikariConfig hikariConfig = new HikariConfig();
  5. hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
  6. hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");
  7. hikariConfig.setUsername("root");
  8. hikariConfig.setPassword("root");
  9. //设置可以获取tables remarks信息
  10. hikariConfig.addDataSourceProperty("useInformationSchema", "true");
  11. hikariConfig.setMinimumIdle(2);
  12. hikariConfig.setMaximumPoolSize(5);
  13. DataSource dataSource = new HikariDataSource(hikariConfig);
  14. //生成配置
  15. EngineConfig engineConfig = EngineConfig.builder()
  16. //生成文件路径
  17. .fileOutputDir("/Users/lengleng")
  18. //打开目录
  19. .openOutputDir(true)
  20. //文件类型
  21. .fileType(EngineFileType.HTML)
  22. //生成模板实现
  23. .produceType(EngineTemplateType.freemarker).build();
  24. //忽略表
  25. ArrayList<String> ignoreTableName = new ArrayList<>();
  26. ignoreTableName.add("test_user");
  27. ignoreTableName.add("test_group");
  28. //忽略表前缀
  29. ArrayList<String> ignorePrefix = new ArrayList<>();
  30. ignorePrefix.add("test_");
  31. //忽略表后缀
  32. ArrayList<String> ignoreSuffix = new ArrayList<>();
  33. ignoreSuffix.add("_test");
  34. ProcessConfig processConfig = ProcessConfig.builder()
  35. //忽略表名
  36. .ignoreTableName(ignoreTableName)
  37. //忽略表前缀
  38. .ignoreTablePrefix(ignorePrefix)
  39. //忽略表后缀
  40. .ignoreTableSuffix(ignoreSuffix).build();
  41. //配置
  42. Configuration config = Configuration.builder()
  43. //版本
  44. .version("1.0.0")
  45. //描述
  46. .description("数据库设计文档生成")
  47. //数据源
  48. .dataSource(dataSource)
  49. //生成配置
  50. .engineConfig(engineConfig)
  51. //生成配置
  52. .produceConfig(processConfig).build();
  53. //执行生成
  54. new DocumentationExecute(config).execute();
  55. }

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

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>cn.smallbun.screw</groupId>
  5. <artifactId>screw-maven-plugin</artifactId>
  6. <version>1.0.2</version>
  7. <dependencies>
  8. <!-- HikariCP -->
  9. <dependency>
  10. <groupId>com.zaxxer</groupId>
  11. <artifactId>HikariCP</artifactId>
  12. <version>3.4.5</version>
  13. </dependency>
  14. <!--mysql driver-->
  15. <dependency>
  16. <groupId>mysql</groupId>
  17. <artifactId>mysql-connector-java</artifactId>
  18. <version>8.0.20</version>
  19. </dependency>
  20. </dependencies>
  21. <configuration>
  22. <!--username-->
  23. <username>root</username>
  24. <!--password-->
  25. <password>root</password>
  26. <!--driver-->
  27. <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
  28. <!--jdbc url-->
  29. <jdbcUrl>jdbc:mysql://127.0.0.1:3306/test</jdbcUrl>
  30. <!--生成文件类型-->
  31. <fileType>HTML</fileType>
  32. <!--文件输出目录-->
  33. <fileOutputDir>/Users/lengleng</fileOutputDir>
  34. <!--打开文件输出目录-->
  35. <openOutputDir>false</openOutputDir>
  36. <!--生成模板-->
  37. <produceType>freemarker</produceType>
  38. <!--描述-->
  39. <description>数据库文档生成</description>
  40. <!--版本-->
  41. <version>${project.version}</version>
  42. <!--标题-->
  43. <title>数据库文档</title>
  44. </configuration>
  45. <executions>
  46. <execution>
  47. <phase>compile</phase>
  48. <goals>
  49. <goal>run</goal>
  50. </goals>
  51. </execution>
  52. </executions>
  53. </plugin>
  54. </plugins>
  55. </build>
作者:冷冷zz
原文链接: https:// juejin.im/post/5f1f5b57 f265da22b855b1d0
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/848041
推荐阅读
相关标签
  

闽ICP备14008679号