InfoSphere/GORM 中文版/ 返回书籍
Advanced Topics

发布日志

qianmoQqianmoQ· 更新于 2026-09-15· 阅读 4 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

v2.0 - 2020年8月

GORM 2.0是一次从头开始的彻底重写,引入了一些不兼容的API变更和大量改进。

  • 性能优化
  • 模块化设计
  • 支持上下文(Context)、批量插入、预编译SQL模式(Prepared Statement Mode)、空运行模式(DryRun Mode)、关联预加载(Join Preload)、查询结果映射到Map(Find To Map)、从Map创建记录(Create From Map)、分批查询(FindInBatches)
  • 支持嵌套事务、保存点(SavePoint)、回滚到指定保存点(RollbackTo SavePoint)
  • 支持命名参数、分组条件、Upsert、加锁、优化器/索引/注释提示,以及子查询改进
  • 全面支持自引用关联,改进关联表,提供用于批量数据的关联模式(Association Mode)
  • 支持多字段跟踪创建/更新时间,并新增对UNIX时间(毫秒/纳秒)的支持
  • 字段权限支持:只读、仅写、仅创建、仅更新、忽略
  • 新插件系统:通过Database Resolver插件支持多数据库、读写分离,集成Prometheus监控...
  • 新钩子API(Hooks API):与插件提供统一接口
  • 新迁移器(Migrator):支持为关联关系创建数据库外键,支持约束/检查器,增强索引支持
  • 新日志器(Logger):支持上下文,增强可扩展性
  • 统一命名策略:规范表名、字段名、关联表名、外键名、检查器名、索引名规则
  • 更好的自定义数据类型支持(例如:JSON)

GORM 2.0发布说明

v1.0 - 2016年4月

GORM V1文档

重大变更:

  • gorm.Open 现在返回 *gorm.DB 而非 gorm.DB
  • 更新操作现在仅更新已更改的字段
  • 软删除现在仅检查 deleted_at IS NULL 条件
  • 新的ToDBName转换逻辑
    来自golint的常见首字母缩写词(如 HTTPURI)现在转换为小写,因此 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

GitHub tag (latest SemVer)

评论

登录后参与评论

正在加载评论…