Advanced Topics
发布日志
登录后可跨设备保存划线和私人笔记登录
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)
v1.0 - 2016年4月
重大变更:
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/mssqlHstore类型已移至包github.com/jinzhu/gorm/dialects/postgres
评论
登录后参与评论
正在加载评论…
InfoSphere