使用ent框架创建表时,字段没有注释

使用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中表现的结果
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值