tbls 是用golang 编写的数据库文档化工具,当前支持的数据库有pg、mysql、bigquery
此工具同时提供了变更对比、lint 校验,生成是markdown格式的

简单使用

安装

mac 系统使用brew 安装

 
brew install k1LoW/tap/tbls 

简单项目使用

  • 数据库准备

    pg 使用docker-compose 运行

version: "3"
services:
  postgres:
    image: postgres:9.6.11
    ports:
    - "5432:5432"
    environment:
    - "POSTGRES_PASSWORD:dalong"
 
 
  • 创建.tbls.yml 文件

    主要是配置数据库连接,以及生成文档的存储路径

# .tbls.yml
# DSN (Databaase Source Name) to connect database
dsn: postgres://postgres:dalong@localhost:5432/postgres?sslmode=disable
# Path to generate document
# Default is `dbdoc`
docPath: doc/schema
 
 
  • 添加数据库
CREATE TABLE userlogins (
    id SERIAL PRIMARY KEY,
    username text
);
  • diff 操作
tbls diff
diff postgres://postgres:*****@localhost:5432/postgres?sslmode=disable doc/schema/README.md
--- postgres://postgres:*****@localhost:5432/postgres?sslmode=disable
+++ doc/schema/README.md
@@ -4,7 +4,6 @@
 | Name | Columns | Comment | Type |
 | ---- | ------- | ------- | ---- |
-| [userlogins](userlogins.md) | 2 | | BASE TABLE |
 ---
diff postgres://postgres:*****@localhost:5432/postgres?sslmode=disable doc/schema/userlogins.md
--- postgres://postgres:*****@localhost:5432/postgres?sslmode=disable
+++ doc/schema/userlogins.md
@@ -1,27 +1 @@
-# userlogins
-## Description
-
-## Columns
-
-| Name | Type | Default | Nullable | Children | Parents | Comment |
-| ---- | ---- | ------- | -------- | -------- | ------- | ------- |
-| id | integer | nextval('userlogins_id_seq'::regclass) | false | | | |
-| username | text | | true | | | |
-
-## Constraints
-
-| Name | Type | Definition |
-| ---- | ---- | ---------- |
-| userlogins_pkey | PRIMARY KEY | PRIMARY KEY (id) |
-
-## Indexes
-
-| Name | Definition |
-| ---- | ---------- |
-| userlogins_pkey | CREATE UNIQUE INDEX userlogins_pkey ON public.userlogins USING btree (id) |
-
----
-
-> Generated by [tbls](https://github.com/k1LoW/tbls)
 
 
  • 生成doc
tbls doc
  • 效果
doc/schema/README.md
doc/schema/userlogins.md
 

内容信息
README.md

 
# postgres
## Tables
| Name | Columns | Comment | Type |
| ---- | ------- | ------- | ---- |
| [userlogins](userlogins.md) | 2 | | BASE TABLE |
---
> Generated by [tbls](https://github.com/k1LoW/tbls)
 
 

userlogins.md

# userlogins
## Description
## Columns
| Name | Type | Default | Nullable | Children | Parents | Comment |
| ---- | ---- | ------- | -------- | -------- | ------- | ------- |
| id | integer | nextval('userlogins_id_seq'::regclass) | false | | | |
| username | text | | true | | | |
## Constraints
| Name | Type | Definition |
| ---- | ---- | ---------- |
| userlogins_pkey | PRIMARY KEY | PRIMARY KEY (id) |
## Indexes
| Name | Definition |
| ---- | ---------- |
| userlogins_pkey | CREATE UNIQUE INDEX userlogins_pkey ON public.userlogins USING btree (id) |
---
> Generated by [tbls](https://github.com/k1LoW/tbls)
 
 
  • UI 效果

说明

tbls 做为数据库diff 以及自动文档生成还是很很不错的工具,同时对于ci也是比较友好的

参考资料

https://github.com/rongfengliang/tbls-pg-demo
https://github.com/k1LoW/tbls#support-database

tbls ci 友好的数据库文档化工具的更多相关文章

  1. 【C#附源码】数据库文档生成工具支持(Excel+Html)

    [2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...

  2. 【C#附源码】数据库文档生成工具支持(Excel+Htm)

    数据库文档生成工具是用C#开发的基于NPOI组件的小工具.软件源码大小不到10MB.支持生成Excel 和Html 两种文档形式.了解更多,请访问:http://www.oschina.net/cod ...

  3. 基于Mybatis的Mysql数据库文档生成工具,支持生成docx(原创)

    今天不写android--也写写数据库相关的东西 -------------------- 今日老夫闲来无事,设计了一款数据库文档生成工具 眼下仅仅支持mysql 主要是生成docx的 下载链接:下载 ...

  4. DBCHM -最简单、最实用的数据库文档生成工具

    项目介绍 DBCHM 是一款数据库文档生成工具! 该工具从最初支持chm文档格式开始,通过开源,集思广益,不断改进,又陆续支持word.excel.pdf.html.xml.markdown等文档格式 ...

  5. 基于WPF重复造轮子,写一款数据库文档管理工具(一)

    项目背景 公司业务历史悠久且复杂,数据库的表更是多而繁杂,每次基于老业务做功能开发都需要去翻以前的表和业务代码.需要理解旧的表的用途以及包含的字段的含义,表少还好说,但是表一多这就很浪费时间,而且留下 ...

  6. 如何基于WPF写一款数据库文档管理工具(二)

    系列目录 基于WPF重复造轮子,写一款数据库文档管理工具(一) 本篇重点 上次发表了基于WPF重复造轮子,写一款数据库文档管理工具(一) 得到不少人支持,文章一度上到了博客园推荐表首页,看来大家对这个 ...

  7. 数据库文档生成工具——word2chm,SqlSpec

    首先使用代码生成器可以生成word版本的数据库文档. 转成chm格式的更加小巧和方便~ SqlSpec是个好工具,可以生成所有数据库相关的信息 之后可以一键生成chm文档.

  8. 使用 Swagger 文档化和定义 RESTful API

    大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API——REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...

  9. 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

    在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...

随机推荐

  1. 洛谷 P1411 树 (树形dp)

    大意: 给定树, 求删除一些边, 使得连通块大小的乘积最大 设$dp_{i,j}$表示只考虑点$i$的子树, $i$所在连通块大小为$j$的最大值. 转移的时候不计算$i$所在连通块的贡献, 留到最后 ...

  2. Linux新装系统简单指南

    也许更好的阅读体验 换源 1. 备份原来的源 sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 2.更换源 先用\(gedit\)打开文 ...

  3. ExtractFileDir 与 ExtractFilePath 的区别

    ExtractFileDir 从文件名中获取目录名(文件不在根目录下时取得的值后没有“/”,在根目录时一样,都是盘符,例如“C:/”) ExtractFilePath 从文件名中获取路径名(文件不在根 ...

  4. springcolud 的学习(一),架构的发展史

    一.传统架构 传统的SSH架构,分为三层架构 web控制层.业务逻辑层.数据库访问层. 传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构,业务没有进行拆分,都 ...

  5. 2.NET Core设定数据库种子

    1.使用以下代码在 Models 文件夹中创建一个名为 SeedData 的新类: using Microsoft.EntityFrameworkCore;using Microsoft.Extens ...

  6. 重新学习Spring2——IOC和AOP原理彻底搞懂

    一.AOP 1 Spring AOP 的实现原理 是对OOP编程方式的一种补充.翻译过来为"面向切面编程". 1 AspectJ是静态代理的增强:所谓静态代理就是AOP框架会在便一 ...

  7. ASP.NET SignalR 系列(二)之项目创建

    一.项目环境 IDE:VisualStudio 2015 SignalR 2.3.0 JQuery版本1.10.1 ,要求必须1.6.4以上 .net Framework 4.6 SignalR2.0 ...

  8. Jboss部署SpringBoot2 JPA

    Jboss部署SpringBoot2 JPA 目录结构 . └── webapp └── META-INF ├── jboss-deployment-structure.xml └── jboss-w ...

  9. Spring Security Architecture and Implementation(架构和实现)学习笔记

    Spring Security 关于spring-security的官网文档学习笔记,主要是第8章 Architecture and Implementation(架构和实现)内容 参考: https ...

  10. LXC容器

    1.    LXC简述 Linux container是一种资源隔离机制而非虚拟化技术.VMM(VMM Virtual Machine Monitor)或者叫Hypervisor是标准的虚拟化技术,这 ...