schemaspy 逆向输出数据库设计
请用5分钟阅读本文,然后立即投入实践,养成良好的设计习惯,你将节约无数宝贵的屎山打滚时间。
先澄清几个误区:
schemaspy 不是做schema 设计的:设计还是要自己写,并且有条件的话在开发之前写清楚,schemaspy 是抽取文档并展示、索引的工具
我的屎山数据库没有设计,schemaspy 对我没用:现在是你最需要schemaspy 的时候,它可以逆向生成一份超出你预期的基础文档
schemaspy会改善我的数据库设计:有可能。准确说 schemaspy 只是告诉你数据库什么样,至于改不改还是你说了算,它给了一些建议。
schemaspy 有点像doxygen , 都是在事后清理的时候排上用场。使用上 schemaspy 更简单一些,只要基本的6项数据库连接信息(ip,端口,用户名,密码,数据库名,数据库类型),就可以为本地或者服务端正在运行的数据库生成详细的schema信息和基本的诊断。
下载 schemaspy
多数软件首选github, 但是这个是例外, 试过几次,我认为最简单的方法是官网下载 jar 包。
收集数据库6项基本信息
schemaspy 需要连接到正在运行的数据库,所以以下信息是必须的:
ip
端口
用户名
密码
数据库名
数据库类型(oracle, postgres, mysql 等)
注意,数据库必须是正在运行且通过以上信息能够访问的,但是不要求数据库与schemaspy 运行在同一台机器。
连接 jar
schemaspy.jar 是个jar 包,除了它, 还需要数据库对应的连接 jar 包。
举例来说,我的目标数据库是 postgres 类型, 我在官网下载了 postgresql-42.2.1.jar, 一般来说,大版本匹配就可以。
生成文档
java -jar schemaspy-6.1.0.jar -t pgsql -dp postgresql-42.2.1.jar -db test_1 -host 100.xxx.xxx.195 -port 54xx -u root -p YOURPASSWD -o schema
文档生成速度非常快,到这一步,按照命令行指定,所有离线文档都打包在 schema 文件夹, 和 doxygen 一样, 可以下载到本地,打开index.html , 即可进入文档首页。更推荐将文档同步到web服务器,开放给团队访问。
文档结构
走马观花看一下输出
table/columns
基本信息,亮点是可以多格式导出,比如xlsx。
orpahn tables
孤儿表的识别比较实用,不光列出表名,基础信息也有了。 码太厚, 供示意用。
relationship
这是我最喜欢的,也是多数人用schemaspy 的理由。真正体现了事后补救的功能。
在全局 ER 图里, 默认只显示主键和索引键,点击 '...' 可以展开详细的单表视图, 对比较长的加工链条,可以看表的二度连接,这也是恰到好处的功能。
anomalies
这个仅供参考,不是schemaspy 的重点。
- 点赞
- 收藏
- 关注作者
评论(0)