{"id":13526670,"url":"https://github.com/voidint/tsdump","last_synced_at":"2025-03-17T11:30:41.182Z","repository":{"id":27214124,"uuid":"112004055","full_name":"voidint/tsdump","owner":"voidint","description":"Database table structure dump tool.","archived":false,"fork":false,"pushed_at":"2023-06-15T04:49:35.000Z","size":4950,"stargazers_count":114,"open_issues_count":7,"forks_count":23,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-02-27T23:08:08.008Z","etag":null,"topics":["database-structure","dump","golang","table-structure"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voidint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-11-25T13:03:31.000Z","updated_at":"2024-10-14T08:48:49.000Z","dependencies_parsed_at":"2024-01-13T16:20:32.416Z","dependency_job_id":"21daf182-d0c1-45c6-be99-0552c9786a1f","html_url":"https://github.com/voidint/tsdump","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidint%2Ftsdump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidint%2Ftsdump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidint%2Ftsdump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidint%2Ftsdump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voidint","download_url":"https://codeload.github.com/voidint/tsdump/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243858058,"owners_count":20359269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database-structure","dump","golang","table-structure"],"created_at":"2024-08-01T06:01:32.959Z","updated_at":"2025-03-17T11:30:40.770Z","avatar_url":"https://github.com/voidint.png","language":"Go","readme":"# tsdump\n[![Build Status](https://travis-ci.org/voidint/tsdump.svg?branch=master)](https://travis-ci.org/voidint/tsdump)\n[![codecov](https://codecov.io/gh/voidint/tsdump/branch/master/graph/badge.svg)](https://codecov.io/gh/voidint/tsdump)\n[![codebeat badge](https://codebeat.co/badges/99dc335b-fd8a-4280-acf1-0eeb04a059e3)](https://codebeat.co/projects/github-com-voidint-tsdump-master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/voidint/tsdump)](https://goreportcard.com/report/github.com/voidint/tsdump)\n\n**注意：**`master`分支可能处于开发之中并**非稳定版本**，请通过tag下载稳定版本的源代码，或通过[release](https://github.com/voidint/tsdump/releases)下载已编译的二进制可执行文件。\n\n## 目录\n- [特性](#特性)\n- [安装](#安装)\n- [基本使用](#基本使用)\n- [Changelog](#changelog)\n\n## 特性\n- 支持将数据库(当前仅支持`MySQL`)及其表结构的元数据以`text`、`markdown`、`json`、`csv`、`xlsx`形式输出。\n\n\n## 安装\n- 源代码安装\n  ```shell\n  $ GO111MODULE=on GOPROXY=https://goproxy.cn go install -v github.com/voidint/tsdump@v0.5.0\n  ```\n- 二进制安装\n\n  [Download](https://github.com/voidint/tsdump/releases)\n\n## 基本使用\n\n```shell\n$ tsdump --help\nNAME:\n  tsdump - Database table structure dump tool.\n\nUSAGE:\n  tsdump [OPTIONS] [database [table ...]]\n\nVERSION:\n  0.5.0\n\nAUTHOR:\n  voidint \u003cvoidint@126.com\u003e\n\nOPTIONS:\n  -D, --debug                 enable debug mode\n  -h value, --host value      connect to host (default: \"127.0.0.1\")\n  -P value, --port value      port number to use for connection (default: 3306)\n  -S value, --socket value    socket file to use for connection\n  -u value, --user value      user for login if not current user (default: \"voidint\")\n  -p value, --password value  password to use when connecting to server. If password is not given it's solicited on the tty.\n  -V value, --viewer value    output viewer. Optional values: csv|json|md|xlsx|txt (default: \"txt\")\n  -o value, --output value    write to a file, instead of STDOUT\n  -s, --sorted                sort table columns\n  --help                      show help\n  --version, -v               print the version\n\nCOPYRIGHT:\n  Copyright (c) 2017-2021, voidint. All rights reserved.\n```\n\n- 使用`root`用户创建一个名为`mydb`的数据库实例，以及一张`student`的表。\n    ```SQL\n    CREATE DATABASE IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;\n\n    USE `mydb`;\n\n    CREATE TABLE `student` (\n    `sno` char(8) NOT NULL COMMENT '学号',\n    `sname` varchar(255) NOT NULL COMMENT '姓名',\n    `gender` char(2) DEFAULT NULL COMMENT '性别',\n    `native` char(20) DEFAULT NULL COMMENT '籍贯',\n    `birthday` datetime DEFAULT NULL COMMENT '出生日期',\n    `dno` char(6) DEFAULT NULL COMMENT '所在院系',\n    `spno` char(8) DEFAULT NULL COMMENT '专业代码',\n    `classno` char(4) DEFAULT NULL COMMENT '班级号',\n    `entime` date DEFAULT NULL COMMENT '入校时间',\n    `home` varchar(40) DEFAULT NULL COMMENT '家庭住址',\n    `tell` varchar(40) DEFAULT NULL COMMENT '联系电话',\n    PRIMARY KEY (`sno`)\n    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';\n    ```\n\n- 将目标数据库及其所有表的表结构数据以表格形式输出到console\n    ```shell\n    $ tsdump -h 127.0.0.1 -P 3307 -u root mydb\n    Enter Password:\n    |----------|---------------|--------------------|\n    | DATABASE | CHARACTER SET |     COLLATION      |\n    |----------|---------------|--------------------|\n    | mydb     | utf8mb4       | utf8mb4_general_ci |\n    |----------|---------------|--------------------|\n\n    TABLE:\tstudent\t学生信息表\n    |----------|--------------|----------|-----|---------|---------------|--------------------|----------|\n    |  COLUMN  |  DATA TYPE   | NULLABLE | KEY | DEFAULT | CHARACTER SET |     COLLATION      | COMMENT  |\n    |----------|--------------|----------|-----|---------|---------------|--------------------|----------|\n    | sno      | char(8)      | NO       | PRI |         | utf8mb4       | utf8mb4_general_ci | 学号     |\n    | sname    | varchar(255) | NO       |     |         | utf8mb4       | utf8mb4_general_ci | 姓名     |\n    | gender   | char(2)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 性别     |\n    | native   | char(20)     | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 籍贯     |\n    | birthday | datetime     | YES      |     |         |               |                    | 出生日期 |\n    | dno      | char(6)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 所在院系 |\n    | spno     | char(8)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 专业代码 |\n    | classno  | char(4)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 班级号   |\n    | entime   | date         | YES      |     |         |               |                    | 入校时间 |\n    | home     | varchar(40)  | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 家庭住址 |\n    | tell     | varchar(40)  | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 联系电话 |\n    |----------|--------------|----------|-----|---------|---------------|--------------------|----------|\n    ```\n\n- 将目标数据库下目标表的表结构数据输出到markdown文件\n    ```shell\n    $ tsdump -h 127.0.0.1 -P 3307 -u root -V md -o ./student.md mydb student\n    ```\n\n    output: \n\n    | DATABASE | CHARACTER SET |     COLLATION      |\n    |----------|---------------|--------------------|\n    | mydb     | utf8mb4       | utf8mb4_general_ci |\n\n    ### `student`\n    学生信息表\n\n    |  COLUMN  |  DATA TYPE   | NULLABLE | KEY | DEFAULT | CHARACTER SET |     COLLATION      | COMMENT  |\n    |----------|--------------|----------|-----|---------|---------------|--------------------|----------|\n    | sno      | char(8)      | NO       | PRI |         | utf8mb4       | utf8mb4_general_ci | 学号     |\n    | sname    | varchar(255) | NO       |     |         | utf8mb4       | utf8mb4_general_ci | 姓名     |\n    | gender   | char(2)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 性别     |\n    | native   | char(20)     | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 籍贯     |\n    | birthday | datetime     | YES      |     |         |               |                    | 出生日期 |\n    | dno      | char(6)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 所在院系 |\n    | spno     | char(8)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 专业代码 |\n    | classno  | char(4)      | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 班级号   |\n    | entime   | date         | YES      |     |         |               |                    | 入校时间 |\n    | home     | varchar(40)  | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 家庭住址 |\n    | tell     | varchar(40)  | YES      |     |         | utf8mb4       | utf8mb4_general_ci | 联系电话 |\n\n- 将用户权限范围内数据库及其表结构数据输出到csv文件\n    ```shell\n    $ tsdump -h 127.0.0.1 -P 3307 -u root -V csv \u003e ./mydb.csv\n    ```\n\n- 将目标数据库及其所有表的表结构数据输出到JSON文件\n    ```shell\n    $ tsdump -h 127.0.0.1 -P 3307 -u root -V json mydb \u003e mydb.json\n    ```\n\n\n## Changelog\n### 0.5.0 - 2021/11/16\n- 支持以`xlsx`视图方式导出表结构数据。[#27](https://github.com/voidint/tsdump/issues/27)\n- 新增`-s`选项以支持对数据库、表、字段按字典序排列。[#28](https://github.com/voidint/tsdump/issues/28)\n\n### 0.4.2 - 2020/05/22\n- 更新依赖（xorm）避免`go get`编译错误\n\n### 0.4.1 - 2020/01/05\n- 修订版权信息\n\n### 0.4.0 - 2018/03/25\n- 支持`UNIX Domain Socket`方式连接数据库。[#18](https://github.com/voidint/tsdump/issues/18)\n- 优化JSON视图输出格式。[#19](https://github.com/voidint/tsdump/issues/19)\n\n### 0.3.0 - 2018/01/05\n- 支持通过`-p`选项指定数据库登录密码。[#16](https://github.com/voidint/tsdump/issues/16)\n- `Fixbug`: 标准输出重定向后获得的内容中包含有`Enter Password:`字样。[#17](https://github.com/voidint/tsdump/issues/17)\n\n### 0.2.0 - 2018/01/01\n- 支持从stdin console中读取数据库登录密码。[#5](https://github.com/voidint/tsdump/issues/5)\n- `Fixbug`: 修正help信息。[#6](https://github.com/voidint/tsdump/issues/6)\n- 支持命令行参数指定目标数据库和表。[#12](https://github.com/voidint/tsdump/issues/12)\n- 支持通过`-h`选项指定主机名。[#14](https://github.com/voidint/tsdump/issues/14)\n\n### 0.1.0 - 2017/12/31\n- 支持以`csv`视图方式导出表结构数据。[#1](https://github.com/voidint/tsdump/issues/1)\n- 支持以`markdown`视图方式导出表结构数据。[#2](https://github.com/voidint/tsdump/issues/2)\n- 支持以`text`视图方式导出表结构数据。[#3](https://github.com/voidint/tsdump/issues/3)\n- 支持以`json`视图方式导出表结构数据。[#4](https://github.com/voidint/tsdump/issues/4)\n","funding_links":[],"categories":["Misc","Go","命令行工具"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidint%2Ftsdump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoidint%2Ftsdump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidint%2Ftsdump/lists"}