使用ent框架创建表时,字段没有注释
Ent版本问题
发现过程
开发环境
SDK:1.17.9
ent:0.11.2
在ent的github上面,作者也说明了这个问题,说是会在后面的几个版本中进行升级。在ent:0.11.5的版本中貌似进行了支持,但是这个版本要求的最低SDK是1.19
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d8048b443bb0451e96e0aa8d8b430bb7.png#pic_center
解决
SDK:1.20
ent:0.12.0
此次是项目需要升级SDK的版本,顺便想到了这个问题。
ent 0.12.0 schema.go 的代码
使用注释
ent文件结构
user.go 内容
package schema
import (
"entgo.io/ent"
"entgo.io/ent/dialect/entsql"
entschema "entgo.io/ent/schema"
"entgo.io/ent/schema/field"
)
type User struct {
ent.Schema
}
func (User) Mixin() []ent.Mixin {
return []ent.Mixin{}
}
func (User) Annotations() []entschema.Annotation {
return []entschema.Annotation{
entsql.Annotation{
Options: "COMMENT='用户表'",// 表名注释
},
entsql.WithComments(true), // 使用注释,默认关闭
}
}
func (User) Fields() []ent.Field {
return []ent.Field{
field.String("phone").Unique().Comment("手机号"),
field.String("password").Comment("密码"),
field.String("address").Comment("住址"),
field.String("name").Comment("姓名"),
field.String("id_card").Comment("身份证"),
field.String("email").Comment("邮箱"),
field.String("avatar").Comment("头像"),
field.String("wechat").Comment("微信"),
field.String("alipay").Comment("支付宝"),
}
}
func (User) Indexes() []ent.Index {
return []ent.Index{}
}
func (User) Edges() []ent.Edge {
return []ent.Edge{}
}
运行generate.go文件中的指令
package db
//go:generate go run -mod=mod entgo.io/ent/cmd/ent generate ./schema --feature sql/modifier --feature sql/upsert
查看…/migrate/schema.go代码,会发现多了Comment的字段信息
使用ent的自动迁移功能,在MySQL中表现的结果