利用node.js制作MySQL表结构文档

对于一个项目来说,数据库表结构的设计是比较重要的一环。从程序开发的流程上来说,应该先设计表再着手进行开发。不过随着技术的发展,很多后端语言都有表结构的映射了。因此,对于表结构的设计就转变成了类结构的设计了。这么做无疑是节省了人工成本,但带来的负面影响是没有以前设计流程中的表结构的文档了。

在最近的一个项目中,恰好就遇见了需要表结构文档的情况。虽说可以直接看类定义,但是这样毕竟不是最直观的。不过要对着类定义来做文档,又很花费精力,同时文档与代码的同步性也是一个很严重的问题。在上家公司由于文档往往都是有延迟或者间隔的,导致一旦发生什么,就只能对着源码来工作。

所以对应着这样的需求,自然就有了制作相关小工具的想法了。主要的需求就是——生成比较容易阅读的表结构文档。

作为一个坚定的JS爱好者,二话不说就拿着Node上了。因为后端在做映射的时候肯定会生成建表的SQL,那么我只要对这SQL进行解析的就完事了嘛~但是转念一想,解析SQL文件根本就没必要啊!既然是拿表的结构,那么直接从数据库里面拿不就好了嘛!

整体的流程大致如下:

  1. 连接MySQL,执行相关SQL语句
  2. 把SQL获取到的结果按照对应的格式输出成文档(表结构与索引相关信息)

为此我们需要下面几个库来帮我们

  1. mysql 用于连接MySQL以及执行相关SQL语句
  2. xlsx 用于导出Excel
  3. async 用于执行批量操作

逻辑并不是很复杂,而且这些库相信很多同学也都用过,所以也就不在这里展开了。
还是老样子,先来看看整体的实现效果。
example.png

执行npm run start就会生成出含有表结构以及索引相关信息的Excel文档了。

  • 没有样式是因为xlsx没法对Excel的单元格进行编辑。不过相比起手工做表结构,添加一点样式的工作量应该是少很多了。

目前生成出的字段都是我根据自己目前项目需要所抽取的,各位也可以根据自己的需要来进行设置。
设置的方法可以查看项目的Readme。

项目地址在这里:mysql-doc
有不足和需要改进的地方也请各位多多指点,如果正好有帮上各位的忙也请不要吝啬点个赞呗~


利用node.js制作MySQL表结构文档
https://konta9.github.io/2018/03/25/2018/利用node-js制作MySQL表结构文档/
作者
Konata
发布于
2018年3月25日
许可协议