tsdump数据库表结构的 dump 工具

联合创作 · 2023-09-30 20:59

特性



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


安装



  • 源代码安装


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

  • 二进制安装

    Download



基本使用



$ 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

浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报