MySQL 表结构生成 Markdown 文档 | 工具篇

背景

在实施软件工程的时候,当要将某一版本归档时,需要汇总的文档要求还是比较高的、各类文档齐全,包括项目架构、项目安装、接口等文档,而数据库表结构说明文档亦属于其一。记得很早之前想找一个可以导出 MySQL 数据库表结构说明文档的工具,生态上的这种工具是有的、只不过并没有一个使我比较满足的。当然、看个人所需,我需要一个可以导出 markdown 文档的。

于是 mysql_markdown 就出现了、应用而生。它是一款基于 go 语言编写的一个命令行工具,适用于 LinuxMacWindows等平台。那么它可以做什么?他只有一个功能、就是生成数据库表结构说明文档,格式为markdown
mysql_markdown.github
mysql_markdown.download

asciicast]

安装

安装方式.1
# curl install
curl -fsSL "https://raw.githubusercontent.com/alicfeng/mysql_markdown/master/install" | sudo sh
安装方式.2
# build install
git clone https://github.com/alicfeng/mysql_markdown.git
cd mysql_markdown
go get "github.com/go-sql-driver/mysql"
go build -o /usr/local/bin/mysql_markdown mysql_markdown.go
chmod +x /usr/local/bin/mysql_markdown

使用

# 帮助函数
➜  mysql_markdown -h
flag needs an argument: -h
Usage: mysql_markdown [options...]
--help  This help text
-h      host.     default 127.0.0.1
-u      username. default root
-p      password. default root
-d      database. default mysql
-P      port.     default 3306
-c      charset.  default utf8
-o      output.   default current location

# 简单使用
➜ mysql_markdown -p samego -d samego
mysql connected ...
1/8 the demo table is making ...
2/8 the failed_jobs table is making ...
3/8 the migrations table is making ...
4/8 the password_resets table is making ...
5/8 the roles table is making ...
6/8 the user table is making ...
7/8 the userinfo table is making ...
8/8 the users table is making ...
mysql_markdown finished ...

md2anyDoc

md转其它类型的文档推荐使用 typora 工具 它支持如下转换格式

  • md2pdf
  • md2html
  • md2html(without styles)
  • md2word
  • md2rtf
  • md2openOffice
  • md2Epub
  • md2latex
  • md2MediaWiki
  • md2reStructureText
  • md2textile
  • md2OPML
  • md2png

文档页面效果

生成的MD文件

MySQL 表结构生成 Markdown 文档

MD文件转PDF

MySQL 表结构生成 Markdown 文档 | 工具篇

本作品采用《CC 协议》,转载必须注明作者和本文链接
价值源于技术,贡献源于分享 | 笔记分享归档 No matter where I am, I will reply you immediately when I see the email. My Email: echo "YUBzYW1lZ28uY29tCg==" | base64 -d 个人比较喜欢分享,若有不对的地方非常感谢指出 相互学习、共同进步~
本帖由系统于 4年前 自动加精
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 30

感谢分享。 最近刚好做文档记录,可以使用一下。

4年前 评论

客气了~价值源于技术,技术源于分享!感谢使用 :smile:

4年前 评论

大佬威武,正好用的,差个眼回头试一下

4年前 评论

哈哈😄、共同学习😁

4年前 评论

曾经用PHP写了一个简单的通过 mysqldump 导出的文件生成 MD。现在有了这个工具就很棒了

4年前 评论

@悲剧不上演 :+1:、我之前也是。能达到目的就行、更好达到目的是追求 :smile:

4年前 评论

typora 这个导出类型挺多的,有命令行版本吗

4年前 评论

@lovecn 可以了解一下pandoc ,这个也是typora 插件

4年前 评论

感谢分享, Mark了

4年前 评论

@AlicFeng 可以导单张表吗

4年前 评论
翟宇鑫

支持下 :kissing_heart:,提个小问题哈,貌似只能完整的导库?

4年前 评论

@白纸 可以的、刚提交了,通过-t参数,即指定表导出,也支持多表,用英文逗号分隔

4年前 评论

@菜就多努力呀n @白纸 通过-t参数,支持指定表导出,用英文逗号分隔

4年前 评论

感谢分享 好心人

4年前 评论

你好,我遇到个问题,table is making ...
query table column scan error, detail is [sql: Scan error on column index 0, name "ORDINAL_POSITION": converting driver.Value type int64 ("128") to a int8: value out of range]
请问 有人遇到过么,这张表对宽度很大,有几百个字段,就报了这个错

4年前 评论

@ryan886 了解,类型长度越界了,修复好了再通知你😄。话说你的表真胖😄

4年前 评论

@PHPer 价值源于技术,技术源于分享😄

4年前 评论

@ryan886 已经修复了、重新安装即可~

4年前 评论

mrak,感觉很好用的样纸,感谢

4年前 评论

已试用,很好用!

4年前 评论

已使用,很好用。 :+1:

4年前 评论

@xiangxihenli 非常感激认可 :smile:

4年前 评论

@AlicFeng 导出的注释字段,如果有回车键, markdown格式就乱了,就会乱码。

4年前 评论

@xiangxihenli 感谢反馈,已修复~

4年前 评论

好用,感谢分享

3年前 评论

@夜游人 感谢老哥认可😄

2年前 评论
Fantasy

如何解决mac 使用mysql_markdown?
/usr/local/bin/mysql_markdown: line 1: 404:: command not found

1年前 评论
AlicFeng (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!