tsdump

command module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2021 License: Apache-2.0 Imports: 20 Imported by: 0

README

tsdump

Build Status codecov codebeat badge Go Report Card

注意:master分支可能处于开发之中并非稳定版本,请通过tag下载稳定版本的源代码,或通过release下载已编译的二进制可执行文件。

目录

特性

  • 支持将数据库(当前仅支持MySQL)及其表结构的元数据以textmarkdownjsoncsv形式输出。

安装

  • 源代码安装

    $ GO111MODULE=on go get -u -v github.com/voidint/tsdump@v0.4.2
    
  • 二进制安装

    Download

基本使用

$ tsdump --help
NAME:
  tsdump - Database table structure dump tool.

USAGE:
  tsdump [OPTIONS] [database [table ...]]

VERSION:
  0.4.2

AUTHOR:
  voidint <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)
  -S value, --socket value    socket file to use for connection
  -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-2020, 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
    

Changelog

0.4.2 - 2020/05/22
  • 更新依赖(xorm)避免go get编译错误
0.4.1 - 2020/01/05
  • 修订版权信息
0.4.0 - 2018/03/25
  • 支持UNIX Domain Socket方式连接数据库。#18
  • 优化JSON视图输出格式。#19
0.3.0 - 2018/01/05
  • 支持通过-p选项指定数据库登录密码。#16
  • Fixbug: 标准输出重定向后获得的内容中包含有Enter Password:字样。#17
0.2.0 - 2018/01/01
  • 支持从stdin console中读取数据库登录密码。#5
  • Fixbug: 修正help信息。#6
  • 支持命令行参数指定目标数据库和表。#12
  • 支持通过-h选项指定主机名。#14
0.1.0 - 2017/12/31
  • 支持以csv视图方式导出表结构数据。#1
  • 支持以markdown视图方式导出表结构数据。#2
  • 支持以text视图方式导出表结构数据。#3
  • 支持以json视图方式导出表结构数据。#4

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
csv
md
txt

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL