Golang 中国

项目地址: 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
    
0 回复
需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。