利用node.js制作MySQL表結(jié)構(gòu)文檔

對于一個項目來說,數(shù)據(jù)庫表結(jié)構(gòu)的設計是比較重要的一環(huán)。從程序開發(fā)的流程上來說,應該先設計表再著手進行開發(fā)。不過隨著技術(shù)的發(fā)展,很多后端語言都有表結(jié)構(gòu)的映射了。因此,對于表結(jié)構(gòu)的設計就轉(zhuǎn)變成了類結(jié)構(gòu)的設計了。這么做無疑是節(jié)省了人工成本,但帶來的負面影響是沒有以前設計流程中的表結(jié)構(gòu)的文檔了。

在最近的一個項目中,恰好就遇見了需要表結(jié)構(gòu)文檔的情況。雖說可以直接看類定義,但是這樣畢竟不是最直觀的。不過要對著類定義來做文檔,又很花費精力,同時文檔與代碼的同步性也是一個很嚴重的問題。在上家公司由于文檔往往都是有延遲或者間隔的,導致一旦發(fā)生什么,就只能對著源碼來工作。

所以對應著這樣的需求,自然就有了制作相關小工具的想法了。主要的需求就是——生成比較容易閱讀的表結(jié)構(gòu)文檔。

作為一個堅定的JS愛好者,二話不說就拿著Node上了。因為后端在做映射的時候肯定會生成建表的SQL,那么我只要對這SQL進行解析的就完事了嘛~但是轉(zhuǎn)念一想,解析SQL文件根本就沒必要??!既然是拿表的結(jié)構(gòu),那么直接從數(shù)據(jù)庫里面拿不就好了嘛!

整體的流程大致如下:

  1. 連接MySQL,執(zhí)行相關SQL語句
  2. 把SQL獲取到的結(jié)果按照對應的格式輸出成文檔(表結(jié)構(gòu)與索引相關信息)

為此我們需要下面幾個庫來幫我們

  1. mysql 用于連接MySQL以及執(zhí)行相關SQL語句
  2. xlsx 用于導出Excel
  3. async 用于執(zhí)行批量操作

邏輯并不是很復雜,而且這些庫相信很多同學也都用過,所以也就不在這里展開了。
還是老樣子,先來看看整體的實現(xiàn)效果。


example.png

執(zhí)行npm run start就會生成出含有表結(jié)構(gòu)以及索引相關信息的Excel文檔了。

  • 沒有樣式是因為xlsx沒法對Excel的單元格進行編輯。不過相比起手工做表結(jié)構(gòu),添加一點樣式的工作量應該是少很多了。

目前生成出的字段都是我根據(jù)自己目前項目需要所抽取的,各位也可以根據(jù)自己的需要來進行設置。
設置的方法可以查看項目的Readme。

項目地址在這里:mysql-doc
有不足和需要改進的地方也請各位多多指點,如果正好有幫上各位的忙也請不要吝嗇點個贊唄~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容