tsdump - 数据库表结构的 dump 工具
软件简介
特性
- 支持将数据库(当前仅支持
MySQL
)及其表结构的元数据以text
、markdown
、json
、csv
形式输出。
安装
-
源代码安装
$ go get -u github.com/voidint/tsdump
-
二进制安装
基本使用
$ tsdump --help
NAME:
tsdump - Database table structure dump tool.
USAGE:
tsdump [OPTIONS] [database [table ...]]
VERSION:
0.3.0
AUTHOR:
voidnt <voidint@126.com>
OPTIONS:
-D, --debug enable debug mode
-h value, --host value connect to host (default: "127.0.0.1")
-P value, --port value port number to use for connection (default: 3306)
-u value, --user value user for login if not current user (default: "voidint")
-p value, --password value password to use when connecting to server. If password is not given it's solicited on the tty.
-V value, --viewer value output viewer. Optional values: txt|csv|json|md (default: "txt")
-o value, --output value write to a file, instead of STDOUT
--help show help
--version, -v print the version
COPYRIGHT:
Copyright (c) 2017, 2018, voidint. All rights reserved.
-
使用
root
用户创建一个名为mydb
的数据库实例,以及一张student
的表。CREATE DATABASE IF NOT EXISTS
mydb
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;USE
mydb
;CREATE TABLE
student
(
sno
char(8) NOT NULL COMMENT ‘学号’,
sname
varchar(255) NOT NULL COMMENT ‘姓名’,
gender
char(2) DEFAULT NULL COMMENT ‘性别’,
native
char(20) DEFAULT NULL COMMENT ‘籍贯’,
birthday
datetime DEFAULT NULL COMMENT ‘出生日期’,
dno
char(6) DEFAULT NULL COMMENT ‘所在院系’,
spno
char(8) DEFAULT NULL COMMENT ‘专业代码’,
classno
char(4) DEFAULT NULL COMMENT ‘班级号’,
entime
date DEFAULT NULL COMMENT ‘入校时间’,
home
varchar(40) DEFAULT NULL COMMENT ‘家庭住址’,
tell
varchar(40) DEFAULT NULL COMMENT ‘联系电话’,
PRIMARY KEY (sno
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’学生信息表’; -
将目标数据库及其所有表的表结构数据以表格形式输出到console
$ tsdump -h 127.0.0.1 -P 3307 -u root mydb
Enter Password:
|----------|---------------|--------------------|
| DATABASE | CHARACTER SET | COLLATION |
|----------|---------------|--------------------|
| mydb | utf8mb4 | utf8mb4_general_ci |
|----------|---------------|--------------------|TABLE: student 学生信息表
|----------|--------------|----------|-----|---------|---------------|--------------------|----------|
| COLUMN | DATA TYPE | NULLABLE | KEY | DEFAULT | CHARACTER SET | COLLATION | COMMENT |
|----------|--------------|----------|-----|---------|---------------|--------------------|----------|
| sno | char(8) | NO | PRI | | utf8mb4 | utf8mb4_general_ci | 学号 |
| sname | varchar(255) | NO | | | utf8mb4 | utf8mb4_general_ci | 姓名 |
| gender | char(2) | YES | | | utf8mb4 | utf8mb4_general_ci | 性别 |
| native | char(20) | YES | | | utf8mb4 | utf8mb4_general_ci | 籍贯 |
| birthday | datetime | YES | | | | | 出生日期 |
| dno | char(6) | YES | | | utf8mb4 | utf8mb4_general_ci | 所在院系 |
| spno | char(8) | YES | | | utf8mb4 | utf8mb4_general_ci | 专业代码 |
| classno | char(4) | YES | | | utf8mb4 | utf8mb4_general_ci | 班级号 |
| entime | date | YES | | | | | 入校时间 |
| home | varchar(40) | YES | | | utf8mb4 | utf8mb4_general_ci | 家庭住址 |
| tell | varchar(40) | YES | | | utf8mb4 | utf8mb4_general_ci | 联系电话 |
|----------|--------------|----------|-----|---------|---------------|--------------------|----------| -
将目标数据库下目标表的表结构数据输出到markdown文件
$ tsdump -h 127.0.0.1 -P 3307 -u root -V md -o ./student.md mydb student
output:
DATABASE | CHARACTER SET | COLLATION |
---|---|---|
mydb | utf8mb4 | utf8mb4_general_ci |
student
学生信息表
COLUMN | DATA TYPE | NULLABLE | KEY | DEFAULT | CHARACTER SET | COLLATION | COMMENT |
---|---|---|---|---|---|---|---|
sno | char(8) | NO | PRI | utf8mb4 | utf8mb4_general_ci | 学号 | |
sname | varchar(255) | NO | utf8mb4 | utf8mb4_general_ci | 姓名 | ||
gender | char(2) | YES | utf8mb4 | utf8mb4_general_ci | 性别 | ||
native | char(20) | YES | utf8mb4 | utf8mb4_general_ci | 籍贯 | ||
birthday | datetime | YES | 出生日期 | ||||
dno | char(6) | YES | utf8mb4 | utf8mb4_general_ci | 所在院系 | ||
spno | char(8) | YES | utf8mb4 | utf8mb4_general_ci | 专业代码 | ||
classno | char(4) | YES | utf8mb4 | utf8mb4_general_ci | 班级号 | ||
entime | date | YES | 入校时间 | ||||
home | varchar(40) | YES | utf8mb4 | utf8mb4_general_ci | 家庭住址 | ||
tell | varchar(40) | YES | utf8mb4 | utf8mb4_general_ci | 联系电话 |
-
将用户权限范围内数据库及其表结构数据输出到csv文件
$ tsdump -h 127.0.0.1 -P 3307 -u root -V csv > ./mydb.csv
-
将目标数据库及其所有表的表结构数据输出到JSON文件
$ tsdump -h 127.0.0.1 -P 3307 -u root -V json mydb > mydb.json