Golang Go语言中现在哪个 ORM 比较成熟靠谱

发布于 1周前 作者 songsunli 来自 Go语言

RT

符合生产级别的

如果有多个符合条件的,就按优雅, 漂亮来排个序, 各位都用哪些的。

打算用 gin 这个 web 框架, 只好这些其他模块都自己凑进去了


Golang Go语言中现在哪个 ORM 比较成熟靠谱
47 回复

xorm

更多关于Golang Go语言中现在哪个 ORM 比较成熟靠谱的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


gorm 怎么样?

mysql 用 xorm 挺好的,文档很不错,基本上看下文档就没有什么问题要问了。要说缺点就是数据库 json 格式支持了。
mongo 就是 mgo ,这个应该没争议了。
gorm 没用过。

看了下 xorm ,文档不怎么清晰。 也没提 Models 方面的,比较了下 gorm 的文档, 很清楚,只要看看示例基本已经知道怎么用了。 http://jinzhu.me/gorm/models.html#model-definition , model 定义方式也跟 python 系下的很像。

gorm 貌似不支持 bulk insert 啊

xorm 我一般是偷懒用 http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-13/ 自己改了一个,先做表然后直接生成结构体使用。基本上很少手写…

我这边产品直接用的 beego 的 orm

我表示 bulk 用的情况不多, 写脚本什么的可能更多情况用到写。 gorm 有 batch update 足够了。

beego 的 orm 还不错, 作者就是照着 django 的 orm 写的, 语法看着很熟悉感

在用 gorm 能接受

目前用 gorm ,不过要注意下哦,之前好像没有发正式的版本,所以有时候一些改动,类型直接变了。。。

要注意下- -

谢谢, 这么坑呢。类型映射不是就那么点类型数量么, 应该不会经常改吧


之前遇到过的是,原来实例化的一个 DB 不是一个指针,后来有次更新了是指针了,然后我那个项目有人就反应编译不过。。。
我之前用因为没有发正式版所以这些改动也不怪开发, go 的包管理也有锅,没有带版本号。。

不过如果有发正式版应该是不会有这种改动了。。

只用了 beego 的 orm 还可以,可以方便的切换数据库驱动和分库,其它的不知道。 beego 的 orm 目前我遇到的问题就是对复合索引不支持。

在用 beego 自带的那个,懒得折腾其他的了

gorm 文档挺不错, 比看中文的 beego 文档还容易理解。

几年前用过 https://upper.io/db Is upper.io/db an ORM? Yes, a very basic one.

Gin 一年没更新了。项目写了一半全迁过去 Echo 了。楼主保重! BTW : GORM 要多看 issues

楼主给你推荐一篇文章,刚看完,感觉不错: http://engineroom.teamwork.com/go-learn/
里面就有提到 gorm ,还有对它的看法

你遇到对复合索引不支持的问题是指哪方面不支持呢?
[beego orm]( http://beego.me/docs/mvc/model/models.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B4%A2%E5%BC%95)
欢迎给我们提 issue 和建议 :)

不好意思,记错了其实是复合主键

https://github.com/astaxie/beego/issues/1493

在用 beego orm 作者一直在维护

xorm,你值得拥有,另不知道你说的文档清晰是什么才算清晰,我觉得挺好的,不懂得可以自己去翻源码或者写小 demo 试试不就知道了.PS: xorm 作者人很不错,赞一个:-)

echo 谨慎使用…尤其 v2

Echo 挺好的,有坑至少作者还在…

没一个真正好用的,如果你拿 python 的 orm 来比的话

现在勉强在用 gorm

v2 现在 API 变化比较快,之前有遇到 delete 获取参数不正确的问题,建议生产别那么快上吧
其实 v2 我也觉得挺好

很快啦,, Beta 了已经…

一年没更新是指新 feature 还是说维护 commit ? 我看他们最近一直有提交

没有 Feature 都是社区的 Bugfixes 或者是 Test cases

刚说完六小时前又改了 API 鸟。

在用 xorm

GORM 作者在这里。。。。。

GORM 从发布到现在已经 2 年多了,都没有改 API 很良心了。。。。这次发布 1.0 ,改了 API 让你们编译不过,不在正式环境下出错不是更良心么。。。。。。 @.@

qor project fight!

你有在用 qor 了么 ;)

v1.0 定稿后的下载链接或者分支有吗?

有时间可以写个文章讲讲看看你们的使用情况哈。。。。

这么管理软件,有个 commit hash 不就够了么   https://github.com/golang/go/wiki/PackageManagementTools  

过一段时间我给加个 tag

好的 ,不过现在完成度还比较低. 可能还需要些时间

commit hash 没找到呃… 在哪里?

commit hash 就是 commit 的 hash 值啊。。。。

我是问你 v1.0 定稿时的 “ commit 的 hash 值 ” 是什么?

gorp 可以用用

在Golang(Go语言)生态中,有多个成熟且靠谱的ORM(对象关系映射)框架可供选择。以下是一些推荐的ORM框架:

  1. GORM

    • 是Go语言中最受欢迎的对象关系映射(ORM)库之一。
    • 提供了简单的API,支持多种数据库,如MySQL、SQLite、PostgreSQL等。
    • 内置事务支持、自动迁移、查询构建器等功能。
    • 文档完善,社区活跃,适合各种规模的Web应用程序开发。
  2. XORM

    • 轻量级但功能强大的ORM库。
    • 提供了高性能的数据库操作,支持分布式数据库集群、数据分片和读写分离。
    • 适用于需要进行大规模数据处理的场景。
  3. Gorp

    • 简单易用,支持多种数据库。
    • 允许开发者自定义结构体和数据库表之间的映射关系。
    • 提供了基本的数据库操作,如插入、更新、删除和查询。
    • 适用于对ORM功能要求不高的场景。

此外,Beego ORM也是基于Beego Web框架的一个强大ORM工具,支持多种数据库和复杂的查询操作。不过,在选择ORM框架时,建议根据项目需求、数据库类型以及开发者对ORM的熟悉程度来决定。

总的来说,以上ORM框架都是Go语言生态中成熟且靠谱的选择,可以根据项目需求和个人偏好进行选择。

回到顶部