GORM 2 个版本的区别

由于技术演进,GORM 有 2 个不同的版本,有些 API 还不同,有点坑,做个记录

发布于  星期四,三月 21 2024

对于这个问题,我直接丢给 Chat GPT 回答。

😬:gorm 有两个版本,一个是 go-gorm/gorm, 一个是jinzhu/gorm,他们之间的区别是什么

🤖:
这两个版本的 GORM 是由同一个开发者创建的,但是他们是在不同时期并且有不同的目标创建的。我们来一一解析:

  1. jinzhu/gorm: 这是 GORM 的原始版本,由开发者 Jinzhu 创建和维护。这个版本是基于 Go 语言的原生数据库驱动和一些常用数据库特性实现的 ORM(Object-Relational Mapping,对象关系映射)框架。开发者 Jinzhu 停止了对这个版本的维护,并将工作重点转移到了新版本 GORM。

  2. go-gorm/gorm: 这是 GORM 的新版本--GORM V2。在这个新版本中,Jinzhu 对许多关键部分进行了重构,优化了性能,并添加了许多新的功能,如 DRY(Don't Repeat Yourself,不重复自己)原则的支持、更好的预加载、新的插件体系等。

总的来说,两个版本其实是同一个项目的不同阶段jinzhu/gorm 是旧版本,go-gorm/gorm 是新版本。新版本在许多方面做了改进和增强,因此如果你从零开始开发新项目,建议使用新版本 go-gorm/gorm。如果你正在维护使用旧版本的项目,那么你可能需要小心地评估是否有必要升级到新版本,因为这可能需要一些代码修改。

网上有一些比较老的文章里面的代码示例,引用的 GORM 还是老的版本,需要注意下,我们优先使用新版本的GORM,也就是 go-gorm/gorm

  • GORM