【问题标题】:What is the difference between github.com/jinzhu/gorm and gorm.io/gorm?github.com/jinzhu/gorm 和 gorm.io/gorm 有什么区别?
【发布时间】:2021-01-29 07:30:50
【问题描述】:

我正在使用 Go 进行应用程序开发,并使用 gorm 库连接到数据库。我看到 gorm 有 2 个库 github.com/jinzhu/gormgorm.io/gorm

我不知道该用哪一个。它们有何不同?

【问题讨论】:

    标签: go go-gorm


    【解决方案1】:

    直到 v1.9.16 的 Gorm 版本 1 保存在 github.com/jinzhu/gorm 并从您的代码中导入它,您将使用该路径:

    import (
        ...
        "github.com/jinzhu/gorm"
    )
    

    Go 的约定是,当一个新的包版本不再向后兼容时,导入路径应该改变,所以当发布版本 2 时,团队决定将 repo 移动到 github 上的一个新组织:https://github.com/go-gorm/gorm,并且这个使用 gorm.io/gorm 将新版本导入您的代码:

    import (
        ...
        "gorm.io/gorm"
    )
    

    (请记住,由于 go 生态系统中的怪癖,v2 被标记为 >= v1.20.0,我知道这很混乱!)

    Gorm v2 在语法和功能上通常与 v1 非常接近,但更强大、更一致并且已经消除了大量错误。我还没有看到基准测试,但从盒子里看,由于使用了准备好的语句,它应该也更高效。

    总而言之,没有理由不在新项目中使用 v2,也有很多理由在现有项目中从 v1 迁移。

    【讨论】:

      【解决方案2】:

      其实是同一个repo,但是jinzhu把GormV2移到了新的repo(https://github.com/go-gorm/gorm or gorm.io/gorm)。 从我的角度来看,我们应该使用更新库github.com/go-gorm/gorm

      【讨论】:

        【解决方案3】:

        我建议不要使用github.com/jinzhu/gorm。使用gorm.io/gorm,由于我使用旧版本的经验,有时会出现错误

        【讨论】:

        • 我知道这是您的第一个答案,如果您可以扩展您看到的错误以及为什么不使用github.com/jinzhu/gorm 这会改善您的答案。就目前而言,这并不能回答问题,很可能会被删除。
        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 2022-01-13
        • 1970-01-01
        • 1970-01-01
        • 2013-06-01
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 2012-09-09
        • 2012-11-21
        相关资源
        最近更新 更多