TL; DR: Кто-нибудь создал службу с golang + protobuf + SQL? Если вы использовали ORM (или ORM-подобную библиотеку), какой из них?
Читайте больше для контекста:
Я создаю службу в golang, которая использует protobuf для сериализации данных. Таким образом, все мои типы и вызовы API определены в файлах .proto, а затем код Go генерируется с помощью protoc.
Я хотел бы использовать ORM для сохранения данных в MySQL. Я google вокруг и нашел gorm, gorp и кучу других библиотек. Кажется, что наличие какой-либо метки или аннотации внутри вашей структуры является общим шаблоном с этими библиотеками.
Пример из документов gorp:
type Post struct {
// db tag lets you specify the column name if it differs from the struct field
Id int64 `db:"post_id"`
Created int64
Title string `db:",size:50"` // Column size set to 50
Body string `db:"article_body,size:1024"` // Set both column name and size
}
Из документов gorm:
type Profile struct {
gorm.Model
Name string
}
type User struct {
gorm.Model
Profile Profile `gorm:"ForeignKey:ProfileRefer"` // use ProfileRefer as foreign key
ProfileRefer int
}
Итак, я попытался посмотреть, есть ли способ добавить эти аннотации к сообщениям в моих файлах .proto и нашел этот вопрос github, говорящий об этом не будет поддерживаться.
Итак, я прихожу к Qaru за советом. Конечно, кто-то там, используя protobufs в golang с SQL, не так ли? И используя ORM? Итак, какой из них вы используете?