v2.0 - 2020.08
GORM 2.0 是从头开始重写的,它引入了一些不兼容的 API 更改和许多改进
- 性能改进
- 模块化
- 支持上下文、批量插入、预处理语句模式、DryRun 模式、连接预加载、查找映射、从映射创建、批量查找
- 支持嵌套事务/保存点/回滚到保存点
- 支持命名参数、分组条件、Upsert、锁定、优化器/索引/注释提示,子查询改进
- 完全支持自引用关系,连接表改进,批量数据的关联模式
- 支持多个字段跟踪创建/更新时间,增加了对 UNIX(毫秒/纳秒)的支持
- 字段权限支持:只读、只写、仅创建、仅更新、忽略
- 新的插件系统:多数据库、读/写分离支持插件数据库解析器、普罗米修斯集成…
- 新的钩子 API:与插件的统一接口
- 新的迁移器:允许为关系创建数据库外键,约束/检查器支持,增强的索引支持
- 新的记录器:上下文支持,改进的可扩展性
- 统一的命名策略:表名、字段名、连接表名、外键、检查器、索引名规则
- 更好的自定义数据类型支持(例如:JSON)
v1.0 - 2016.04
重大更改
gorm.Open
返回*gorm.DB
而不是gorm.DB
- 更新将只更新更改的字段
- 软删除将只检查
deleted_at IS NULL
- 新的 ToDBName 逻辑
来自 golint 的常见首字母缩略词,如HTTP
、URI
已转换为小写,因此HTTP
的数据库名称为http
,而不是h_t_t_p
,但对于列表中未包含的其他首字母缩略词,如SKU
,其数据库名称为s_k_u
,此更改将其修复为sku
- 错误
RecordNotFound
已重命名为ErrRecordNotFound
mssql
方言已重命名为github.com/jinzhu/gorm/dialects/mssql
Hstore
已移至软件包github.com/jinzhu/gorm/dialects/postgres