tsdump數(shù)據(jù)庫表結構的 dump 工具
特性
- 支持將數(shù)據(jù)庫(當前僅支持
MySQL)及其表結構的元數(shù)據(jù)以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 <[email protected]> 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用戶創(chuàng)建一個名為mydb的數(shù)據(jù)庫實例,以及一張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 '專業(yè)代碼', `classno` char(4) DEFAULT NULL COMMENT '班級號', `entime` date DEFAULT NULL COMMENT '入校時間', `home` varchar(40) DEFAULT NULL COMMENT '家庭住址', `tell` varchar(40) DEFAULT NULL COMMENT '聯(lián)系電話', PRIMARY KEY (`sno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='學生信息表';
-
將目標數(shù)據(jù)庫及其所有表的表結構數(shù)據(jù)以表格形式輸出到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 | 專業(yè)代碼 | | 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 | 聯(lián)系電話 | |----------|--------------|----------|-----|---------|---------------|--------------------|----------|
-
將目標數(shù)據(jù)庫下目標表的表結構數(shù)據(jù)輸出到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 專業(yè)代碼 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 聯(lián)系電話 -
將用戶權限范圍內(nèi)數(shù)據(jù)庫及其表結構數(shù)據(jù)輸出到csv文件
$ tsdump -h 127.0.0.1 -P 3307 -u root -V csv > ./mydb.csv
-
將目標數(shù)據(jù)庫及其所有表的表結構數(shù)據(jù)輸出到JSON文件
$ tsdump -h 127.0.0.1 -P 3307 -u root -V json mydb > mydb.json
評論
圖片
表情
