V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
defage
V2EX  ›  Go 编程语言

golang 的同学现在哪个 ORM 比较成熟靠谱

  •  1
     
  •   defage · 2016-03-21 14:45:25 +08:00 · 2994 次点击
    这是一个创建于 2951 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

    符合生产级别的

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

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

    46 条回复    2016-05-08 12:38:40 +08:00
    yanyuan2046
        1
    yanyuan2046  
       2016-03-21 14:54:53 +08:00
    xorm
    defage
        2
    defage  
    OP
       2016-03-21 15:00:47 +08:00
    gorm 怎么样?
    janxin
        3
    janxin  
       2016-03-21 15:10:30 +08:00 via iPhone
    mysql 用 xorm 挺好的,文档很不错,基本上看下文档就没有什么问题要问了。要说缺点就是数据库 json 格式支持了。
    mongo 就是 mgo ,这个应该没争议了。
    gorm 没用过。
    defage
        4
    defage  
    OP
       2016-03-21 15:27:24 +08:00
    看了下 xorm ,文档不怎么清晰。 也没提 Models 方面的,比较了下 gorm 的文档, 很清楚,只要看看示例基本已经知道怎么用了。 http://jinzhu.me/gorm/models.html#model-definition , model 定义方式也跟 python 系下的很像。
    janxin
        5
    janxin  
       2016-03-21 16:53:22 +08:00
    @defage 你是说定义表结构体方面的话就是这个吧 http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-02/1.mapping.html
    WildCat
        6
    WildCat  
       2016-03-21 16:54:21 +08:00
    gorm 貌似不支持 bulk insert 啊
    janxin
        7
    janxin  
       2016-03-21 16:57:27 +08:00
    xorm 我一般是偷懒用 http://gobook.io/read/github.com/go-xorm/manual-zh-CN/chapter-13/ 自己改了一个,先做表然后直接生成结构体使用。基本上很少手写....
    yougg
        8
    yougg  
       2016-03-21 17:05:24 +08:00
    我这边产品直接用的 beego 的 orm
    defage
        9
    defage  
    OP
       2016-03-21 17:09:54 +08:00
    @WildCat 我表示 bulk 用的情况不多, 写脚本什么的可能更多情况用到写。 gorm 有 batch update 足够了。
    defage
        10
    defage  
    OP
       2016-03-21 17:14:48 +08:00
    @yougg beego 的 orm 还不错, 作者就是照着 django 的 orm 写的, 语法看着很熟悉感
    zts1993
        11
    zts1993  
       2016-03-21 17:33:26 +08:00
    在用 gorm 能接受
    orFish
        12
    orFish  
       2016-03-21 17:40:36 +08:00
    目前用 gorm ,不过要注意下哦,之前好像没有发正式的版本,所以有时候一些改动,类型直接变了。。。

    要注意下- -
    elgoog1970
        13
    elgoog1970  
       2016-03-21 17:41:53 +08:00
    xorm
    defage
        14
    defage  
    OP
       2016-03-21 17:45:51 +08:00
    @orFish 谢谢, 这么坑呢。类型映射不是就那么点类型数量么, 应该不会经常改吧
    orFish
        15
    orFish  
       2016-03-21 17:49:32 +08:00
    @defage
    之前遇到过的是,原来实例化的一个 DB 不是一个指针,后来有次更新了是指针了,然后我那个项目有人就反应编译不过。。。
    我之前用因为没有发正式版所以这些改动也不怪开发, go 的包管理也有锅,没有带版本号。。

    不过如果有发正式版应该是不会有这种改动了。。
    njutree
        16
    njutree  
       2016-03-21 17:50:49 +08:00
    只用了 beego 的 orm 还可以,可以方便的切换数据库驱动和分库,其它的不知道。 beego 的 orm 目前我遇到的问题就是对复合索引不支持。
    missdeer
        17
    missdeer  
       2016-03-21 17:58:37 +08:00
    在用 beego 自带的那个,懒得折腾其他的了
    defage
        18
    defage  
    OP
       2016-03-21 18:08:40 +08:00
    gorm 文档挺不错, 比看中文的 beego 文档还容易理解。
    siteshen
        19
    siteshen  
       2016-03-21 18:55:54 +08:00
    几年前用过 https://upper.io/db Is upper.io/db an ORM? Yes, a very basic one.
    JohnDeng
        20
    JohnDeng  
       2016-03-21 19:17:16 +08:00 via iPhone
    Gin 一年没更新了。项目写了一半全迁过去 Echo 了。楼主保重! BTW : GORM 要多看 issues
    WildCat
        21
    WildCat  
       2016-03-21 19:21:16 +08:00
    楼主给你推荐一篇文章,刚看完,感觉不错: http://engineroom.teamwork.com/go-learn/
    里面就有提到 gorm ,还有对它的看法
    suchj
        22
    suchj  
       2016-03-21 20:26:39 +08:00
    @njutree 你遇到对复合索引不支持的问题是指哪方面不支持呢?
    [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 和建议 :)
    njutree
        23
    njutree  
       2016-03-21 21:04:49 +08:00
    @suchj 不好意思,记错了其实是复合主键

    https://github.com/astaxie/beego/issues/1493
    Comdex
        24
    Comdex  
       2016-03-21 21:41:18 +08:00 via Android
    在用 beego orm 作者一直在维护
    penjianfeng
        25
    penjianfeng  
       2016-03-21 21:48:28 +08:00
    xorm,你值得拥有,另不知道你说的文档清晰是什么才算清晰,我觉得挺好的,不懂得可以自己去翻源码或者写小 demo 试试不就知道了.PS: xorm 作者人很不错,赞一个:-)
    janxin
        26
    janxin  
       2016-03-21 23:34:15 +08:00 via iPhone
    @JohnDeng echo 谨慎使用…尤其 v2
    JohnDeng
        27
    JohnDeng  
       2016-03-21 23:53:50 +08:00 via iPhone
    @janxin Echo 挺好的,有坑至少作者还在...
    jjx
        28
    jjx  
       2016-03-21 23:59:34 +08:00
    没一个真正好用的,如果你拿 python 的 orm 来比的话

    现在勉强在用 gorm
    janxin
        29
    janxin  
       2016-03-22 08:05:52 +08:00
    @JohnDeng v2 现在 API 变化比较快,之前有遇到 delete 获取参数不正确的问题,建议生产别那么快上吧
    其实 v2 我也觉得挺好
    JohnDeng
        30
    JohnDeng  
       2016-03-22 08:10:10 +08:00 via iPhone
    @janxin 很快啦,, Beta 了已经...
    defage
        31
    defage  
    OP
       2016-03-22 08:50:55 +08:00
    @JohnDeng 一年没更新是指新 feature 还是说维护 commit ? 我看他们最近一直有提交
    JohnDeng
        32
    JohnDeng  
       2016-03-22 10:58:01 +08:00 via iPhone
    @defage 没有 Feature 都是社区的 Bugfixes 或者是 Test cases
    JohnDeng
        33
    JohnDeng  
       2016-03-22 10:58:28 +08:00 via iPhone
    @janxin 刚说完六小时前又改了 API 鸟。
    jdlau
        34
    jdlau  
       2016-03-22 11:34:06 +08:00 via Android
    在用 xorm
    jinzhu
        35
    jinzhu  
       2016-03-22 14:39:35 +08:00   ❤️ 1
    GORM 作者在这里。。。。。

    GORM 从发布到现在已经 2 年多了,都没有改 API 很良心了。。。。这次发布 1.0 ,改了 API 让你们编译不过,不在正式环境下出错不是更良心么。。。。。。 @.@
    ikaros
        36
    ikaros  
       2016-03-22 19:46:21 +08:00
    @wosmvp qor project fight!
    jinzhu
        37
    jinzhu  
       2016-03-23 10:28:37 +08:00   ❤️ 1
    @ikaros 你有在用 qor 了么 ;)
    ikaros
        38
    ikaros  
       2016-03-23 13:15:27 +08:00   ❤️ 1
    @jinzhu 是的 XD
    darasion
        39
    darasion  
       2016-03-23 14:07:21 +08:00
    @jinzhu v1.0 定稿后的下载链接或者分支有吗?
    jinzhu
        40
    jinzhu  
       2016-03-23 15:06:57 +08:00   ❤️ 1
    @ikaros 有时间可以写个文章讲讲看看你们的使用情况哈。。。。
    jinzhu
        41
    jinzhu  
       2016-03-23 15:08:01 +08:00
    @darasion 这么管理软件,有个 commit hash 不就够了么   https://github.com/golang/go/wiki/PackageManagementTools  

    过一段时间我给加个 tag
    ikaros
        42
    ikaros  
       2016-03-23 15:32:58 +08:00
    @jinzhu 好的 ,不过现在完成度还比较低. 可能还需要些时间
    darasion
        43
    darasion  
       2016-03-23 16:17:17 +08:00
    @jinzhu commit hash 没找到呃... 在哪里?
    jinzhu
        44
    jinzhu  
       2016-03-24 09:56:42 +08:00
    @defage commit hash 就是 commit 的 hash 值啊。。。。
    darasion
        45
    darasion  
       2016-03-24 10:27:35 +08:00
    @jinzhu 我是问你 v1.0 定稿时的 “ commit 的 hash 值 ” 是什么?
    2goo
        46
    2goo  
       2016-05-08 12:38:40 +08:00
    gorp 可以用用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5191 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 08:04 · PVG 16:04 · LAX 01:04 · JFK 04:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.