一个基于Node.js,将MySQL的表结构、索引信息导出成为Excel文档的工具。
目的在于减少人工制作文档的时间成本,直接从数据库导成文档也保证了文档与代码是同步的(只要每次数据库变动后及时导出)。
当然,由于xlsx
的局限性。生成出的excel是没有样式的。但相对于制表的成本,添加样式应该会相对少很多(我们还可以利用宏来帮忙)。
- 下载本项目
npm install
-
在
config
目录下创建config.js
并进行配置,主要是数据库连接以及输出目录的配置。可参考config-example.js
-
运行项目
npm run start
或项目目录下
node index.js
目前版本中输出表头信息,可以在src/option.js
中修改值。
option.js
中COLUMNS
和INDEX
对应着MySQL的information_schema.COLUMNS
和information_schema.STATISTICS
表。
key对应SELECT的字段,value对应抽出时的别名(AS ‘xxx'部分)。
如果需要增加或删除抽出的字段,则需要修改src/option.js
以及src/queryModel.js
两个文件。
其中queryModel.js
文件是执行过程中的SQL语句文件,通过调整SELECT语句来达到修改抽出字段的目的。
根据现有需求,在目前版本中只抽出了表结构与表索引信息相关的内容。
当还需要增加其他信息时,则需要同时修改src/option.js
、src/queryModel.js
、src/mysql-doc.js
、src/excel-maker.js
四个文件。
src/mysql-doc.js
负责处理MySQL的操作逻辑;src/excel-maker.js
主要负责excel文件的生成。根据不同的需求,需要增加对应的逻辑。
当在一个excel的worksheet中输出多个表格时,请保证每个表格的列数一致(可以在SELECT语句中用''来补全),来确保生成出的excel数据不会丢失。