tsdump

数据库表结构的 dump 工具
授权协议 Apache-2.0
开发语言 Google Go
所属分类 数据库相关、 数据库调整和优化
软件类型 开源软件
地区 国产
投 递 者 韩良策
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

特性

  • 支持将数据库(当前仅支持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
 相关资料
  • 如果需要在程序中 Dump 数据库的结构和数据可以调用 engine.DumpAll(w io.Writer) 和 engine.DumpAllToFile(fpath string)。 DumpAll 方法接收一个io.Writer接口来保存Dump出的数据库结构和数据的SQL语句,这个方法导出的SQL语句并不能通用。只针对当前engine所对应的数据库支持的SQL。 Import 执行数据库S

  • PHPSSO 数据库结构[更新日期:2010-12-28] 点击查看 PHPCMS 数据库结构[更新日期:2010-12-28] 点击查看

  • list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。 列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删

  • 1. 类型定义 listSize(属性) 列表的元素个数 pos( 属性) 列表的当前位置 length( 属性) 返回列表中元素的个数 clear( 方法) 清空列表中的所有元素 toString( 方法) 返回列表的字符串形式 getElement( 方法) 返回当前位置的元素

  • 本文向大家介绍详解 linux mysqldump 导出数据库、数据、表结构,包括了详解 linux mysqldump 导出数据库、数据、表结构的使用技巧和注意事项,需要的朋友参考一下 详解 linux mysqldump 导出数据库、数据、表结构 导出完整的数据库备份: 说明:--add-locks:导出过程中锁定表,完成后回解锁。-q:不缓冲查询,直接导出至标准输出  导出完整的数据库表结构

  • 问题内容: 我有一个专栏 组 。 群组 具有存储在group_types中的不同类型(买方,卖方,裁判)。只有当该组是买方类型时,它才具有另一种(更专门)的类型,例如电气和机械类型。 我对如何将其存储在数据库中感到有些困惑。 有人可以建议我一个数据库结构吗? 谢谢 问题答案: 将您的存储为层次结构表(带有或模型): : 将选择中的所有买家。 : 将选择任何数据库中的所有买家。 如果您不需要层次结构

  • 我正在使用Flatter和firebase构建一个应用程序,我想知道最好的firestore数据库结构是什么。 我希望用户能够发布消息,然后通过帖子内容和海报用户名进行搜索。 为用户创建一个集合,每个文档存储用户名和其他信息,并为帖子创建一个单独的集合,每个文档包含帖子和海报的用户名,这是否有意义? 万一帖子数量超过一百万或更多,查询这种大规模收集是否会产生额外的成本? 将每个用户的帖子作为子集合

  • 同步能够部分智能的根据结构体的变动检测表结构的变动,并自动同步。目前有两个实现: Sync Sync将进行如下的同步操作: * 自动检测和创建表,这个检测是根据表的名字 * 自动检测和新增表中的字段,这个检测是根据字段名 * 自动检测和创建索引和唯一索引,这个检测是根据索引的一个或多个字段名,而不根据索引名称 调用方法如下: err := engine.Sync(new(User), ne