关于 idl + grom 优化讨论
Closed this issue · 2 comments
zackzhangkai commented
cloudwego 先定义 idl 生成 go struct。然后在使用数据库的时候,又通过数据库反向生成 dao struct。这里是不是可以优化成:idl 生成 go struct,然后直接 go migrate 更新数据库?避免有两次生成 struct 的过程
https://github.com/cloudwego/hertz-examples/tree/main/bizdemo/hertz_gorm_gen
li-jin-gou commented
gorm 的部分数据无法用 idl 来表示,所以这个地方没办法用 hz 的结构体。
zackzhangkai commented
gorm 的部分数据无法用 idl 来表示,所以这个地方没办法用 hz 的结构体。
能具体说说这块吗?我用的可以成功:
idl:
# review.proto
message Review {
int64 ReviewID = 1;
string Name = 2;
int64 GoodsID = 3;
string Content = 4;
}
# review.pb.go
type Review struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ReviewID int64 `protobuf:"varint,1,opt,name=ReviewID,proto3" json:"ReviewID,omitempty" form:"ReviewID" query:"ReviewID"`
Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty" form:"Name" query:"Name"`
GoodsID int64 `protobuf:"varint,3,opt,name=GoodsID,proto3" json:"GoodsID,omitempty" form:"GoodsID" query:"GoodsID"`
Content string `protobuf:"bytes,4,opt,name=Content,proto3" json:"Content,omitempty" form:"Content" query:"Content"`
}
migrate 之后: