开源系统 网站,志愿者网站时长码怎么做,怎么从零开始做网站,泰安招聘信息最新招聘2022前言
通常业务系统开发中#xff0c;数据库的设计与维护是至关重要的环节。而数据库的文档化则是确保团队成员之间有效沟通、快速理解系统架构的基础。
但目前数据文档都是手动写的#xff0c;耗时费力#xff0c;由于当前项目使用的是 mysql 作为存储引擎#xff0c;找找…前言
通常业务系统开发中数据库的设计与维护是至关重要的环节。而数据库的文档化则是确保团队成员之间有效沟通、快速理解系统架构的基础。
但目前数据文档都是手动写的耗时费力由于当前项目使用的是 mysql 作为存储引擎找找看有没有比较好用的工具发现了一个比较契合的 mysql_markdown。
mysql_markdown 的使用
可以直接上 GitHub 上下载源码自行编译。
快速使用
# 帮助
➜ mysql_markdown -h
flag needs an argument: -h
Usage: mysql_markdown [options...]
--help This help text
-h host. default 127.0.0.1
-u username. default root
-p password. default root
-d database. default mysql
-P port. default 3306
-c charset. default utf8
-o output. default current location
-t tables. default all table and support , separator for filter, every item can use regexp
-l language. default cn,support: cn,en# 使用
➜ mysql_markdown -p 123456 -d test
connecting to MySQL to export markdown document file.100% |█████████████████████████████████████████████████████████████████████████████████████| (1/1, 394 it/s)
convert to document finished in test_20241122_103043.mdgo gorm 生成表/字段描述
使用过 gorm 的对于生成数据库字段描述应该不陌生只需要在对应的结构体上添加 tag 即可如下
type User struct {Name string gorm:comment:姓名Age int gorm:comment:年龄
}生成表的描述信息注意gorm 没有提供类似 TableName 设置表名的方式来设置描述得用 gorm:table_options 来设置如果不是新建的表这种设置方式也不能生效。
db.Set(gorm:table_options, COMMENT 用户表).AutoMigrate(User{})实际例子
package mainimport (gorm.io/driver/mysqlgorm.io/gormgorm.io/gorm/loggerlogos
)type User struct {Name string gorm:comment:姓名Age int gorm:comment:年龄
}func (User) TableName() string {return user
}func getLocalTestDb() (db *gorm.DB, err error) {newLogger : logger.New(log.New(os.Stderr, \r\n, log.LstdFlags), logger.Config{LogLevel: logger.Info,IgnoreRecordNotFoundError: true,Colorful: true,})db, err gorm.Open(mysql.New(mysql.Config{DSN: root:123456tcp(127.0.0.1:3306)/test,}), gorm.Config{Logger: newLogger, CreateBatchSize: 1000})return
}func main() {db, err : getLocalTestDb()if err ! nil {log.Fatal(err)}db db.Debug()// gorm:table_options 会在创建 table 的语句后添加相关的语句不是新建的表不能生效err db.Set(gorm:table_options, COMMENT 用户表).AutoMigrate(User{})if err ! nil {log.Fatal(err)}log.Println(OK)
}程序输出
2024/11/22 10:23:08 main.go:41
[0.000ms] [rows:-] SELECT DATABASE()2024/11/22 10:23:08 main.go:41
[5.769ms] [rows:1] SELECT SCHEMA_NAME from Information_schema.SCHEMATA where SCHEMA_NAME LIKE test% ORDER BY SCHEMA_NAMEtest DESC,SCHEMA_NAME limit 12024/11/22 10:23:08 main.go:41
[2.575ms] [rows:-] SELECT count(*) FROM information_schema.tables WHERE table_schema test AND table_name user AND table_type BASE TABLE2024/11/22 10:23:09 main.go:41
[49.289ms] [rows:0] CREATE TABLE user (name longtext COMMENT 姓名,age bigint COMMENT 年龄)COMMENT 用户表
2024/11/22 10:23:09 OK使用 mysql_markdown 工具导出 md 文档
mysql_markdown -p 123456 -d test可见文档内容如下
## test tables message
#### 1、 user
用户表| 序号 | 名称 | 描述 | 类型 | 键 | 为空 | 额外 | 默认值 |
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
| 1 | name | 姓名 | longtext | | YES | | |
| 2 | age | 年龄 | bigint | | YES | | |参考
mysql_markdown