tsdump-用於匯出資料庫表結構的工具(支援匯出為text、markdown、csv、json)

voidint發表於2017-12-03

專案地址: https://github.com/voidint/tsdump

特性

  • 支援將資料庫 (當前僅支援MySQL) 及其表結構的後設資料以textmarkdownjsoncsv形式輸出。

安裝

$ go get -u github.com/voidint/tsdump

基本使用

  • 全域性選項

    GLOBAL OPTIONS:
    -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.
    -d value, --db value        Database name.
    -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.
    -D, --debug                 Enable debug mode.
    --help, -h                  show help
    --version, -v               print the version
    
  • 使用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 -p "mypassword" --db mydb
    |----------|---------------|--------------------|
    | DATABASE | CHARACTER SET |     COLLATION      |
    |----------|---------------|--------------------|
    | mydb     | utf8mb4       | utf8mb4_general_ci |
    |----------|---------------|--------------------|
    
    TABLE:  student 學生資訊表
    |----------|----------|--------------|---------------|--------------------|----------|
    |  COLUMN  | NULLABLE |  DATA TYPE   | CHARACTER SET |     COLLATION      | COMMENT  |
    |----------|----------|--------------|---------------|--------------------|----------|
    | sno      | NO       | char(8)      | utf8mb4       | utf8mb4_general_ci | 學號     |
    | sname    | NO       | varchar(255) | utf8mb4       | utf8mb4_general_ci | 姓名     |
    | gender   | YES      | char(2)      | utf8mb4       | utf8mb4_general_ci | 性別     |
    | native   | YES      | char(20)     | utf8mb4       | utf8mb4_general_ci | 籍貫     |
    | birthday | YES      | datetime     |               |                    | 出生日期 |
    | dno      | YES      | char(6)      | utf8mb4       | utf8mb4_general_ci | 所在院系 |
    | spno     | YES      | char(8)      | utf8mb4       | utf8mb4_general_ci | 專業程式碼 |
    | classno  | YES      | char(4)      | utf8mb4       | utf8mb4_general_ci | 班級號   |
    | entime   | YES      | date         |               |                    | 入校時間 |
    | home     | YES      | varchar(40)  | utf8mb4       | utf8mb4_general_ci | 家庭住址 |
    | tell     | YES      | varchar(40)  | utf8mb4       | utf8mb4_general_ci | 聯絡電話 |
    |----------|----------|--------------|---------------|--------------------|----------|
    
  • 將資料庫及其表結構資料輸出到 markdown 檔案

    $ tsdump -H 127.0.0.1 -P 3307 -u root -p "mypassword" --db mydb -V md > ./mydb.md
    

    output:

    student

    學生資訊表

    COLUMN NULLABLE DATA TYPE CHARACTER SET COLLATION COMMENT
    sno NO char(8) utf8mb4 utf8mb4_general_ci 學號
    sname NO varchar(255) utf8mb4 utf8mb4_general_ci 姓名
    gender YES char(2) utf8mb4 utf8mb4_general_ci 性別
    native YES char(20) utf8mb4 utf8mb4_general_ci 籍貫
    birthday YES datetime 出生日期
    dno YES char(6) utf8mb4 utf8mb4_general_ci 所在院系
    spno YES char(8) utf8mb4 utf8mb4_general_ci 專業程式碼
    classno YES char(4) utf8mb4 utf8mb4_general_ci 班級號
    entime YES date 入校時間
    home YES varchar(40) utf8mb4 utf8mb4_general_ci 家庭住址
    tell YES varchar(40) utf8mb4 utf8mb4_general_ci 聯絡電話
  • 將資料庫及其表結構資料輸出到 csv 檔案

    $ tsdump -H 127.0.0.1 -P 3307 -u root -p "mypassword" --db mydb -V csv -o ./mydb.csv
    
  • 將資料庫及其表結構資料輸出到 JSON 檔案

    $ tsdump -H 127.0.0.1 -P 3307 -u root -p "mypassword" --db mydb -V json -o ./mydb.json
    
更多原創文章乾貨分享,請關注公眾號
  • tsdump-用於匯出資料庫表結構的工具(支援匯出為text、markdown、csv、json)
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章