相关文章推荐
  • 代码模块化
  • Context,批量插入,预编译模式,DryRun 模式,Join 预加载,Find To Map,Create From Map,FindInBatches 支持
  • 支持嵌套事务,SavePoint,Rollback To SavePoint
  • SQL 生成器,命名参数,分组条件,Upsert,锁, 支持 Optimizer/Index/Comment Hint,子查询改进,使用SQL表达式、Context Valuer 进行 CRUD
  • 完整的自引用支持,连接表改进,批量数据的关联模式
  • 允许跟踪创建/更新时间的多个字段,UNIX (毫秒/纳秒) 支持
  • 支持字段权限:只读、只写、只创建、只更新、忽略
  • 新的插件系统,为多个数据库提供了官方插件,读写分离,prometheus 集成…
  • 全新的 Hook API:带插件的统一接口
  • 新迁移器:允许为关系创建数据库外键,更智能的自动迁移,支持约束以及检查器,支持增强索引
  • 全新的 Logger:支持 context、改进可扩展性
  • 统一命名策略:表名、字段名、连接表名、外键、检查器、索引名称规则
  • 更好的自定义类型支持(例如: JSON)
  • GORM 的开发已经迁移至 github.com/go-gorm ,import 路径也修改为 gorm.io/gorm ,对于以前的项目,您可以继续使用 github.com/jinzhu/gorm GORM V1 Document
  • 数据库驱动被拆分为独立的项目,例如: github.com/go-gorm/sqlite ,且它的 import 路径也变更为 gorm.io/driver/sqlite
  • 安装

    go get gorm.io/gorm
    // **注意** GORM `v2.0.0` 发布的 git tag 是 `v1.20.0`

    快速开始

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

    func init() {
    db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})

    // 大部分 CRUD API 都是兼容的
    db.AutoMigrate(&Product{})
    db.Create(&user)
    db.First(&user, 1)
    db.Model(&user).Update("Age", 18)
    db.Model(&user).Omit("Role").Updates(map[string]interface{}{"Name": "jinzhu", "Role": "admin"})
    db.Delete(&user)
    }

    主要特性

    Context 支持

     
    推荐文章