# 更新日志
## v2.0 - 2020.07
GORM 2.0 是根據我們在過去幾年里收到的反饋從零重寫的,它引入了一些不兼容的 API 更改和許多改進
- 性能改進
- 模塊化
- Context、批量插入、Prepared Statment、DryRun 模式、Join Preload、Find To Map、FindInBatches
- SavePoint、RollbackTo、嵌套事務
- 關聯改進(刪除、更新時),修改 Many2Many 的連接表,批量數據關聯模式
- SQL 構建器、Upsert、Locking 和 Optimizer、Index、Comment 提示
- 支持多個字段的自動追蹤創建、更新時間,且支持納秒級、毫秒級、秒級時間戳
- 字段級權限控制:只讀、只寫、只創建、只更新、忽略
- 全新的 Migrator、Logger
- 命名策略(統一表名、字段名、連接表名、外鍵、檢查器、索引名稱規則)
- 更好的自定義數據類型支持(例如:JSON)
- 全新的插件系統、Hooks API
## v1.0 - 2016.04
[GORM V1 文檔](https://v1.gorm.io/)
破壞性變更
- `gorm.Open` 返回類型是 `*gorm.DB` 而不是 `gorm.DB`
- Update 只會更新有變更的字段
- 開啟軟刪除后,默認只會檢查 `deleted_at IS NULL` 的記錄
- 新的 ToDBName 邏輯
當 GORM 將 struct、字段轉換為數據庫名時,采用了類似于 [golint](https://github.com/golang/lint/blob/master/lint.go#L702) 處理 `HTTP` 和 `URI` 縮寫的方式。因此,`HTTP` 的數據庫名是 `http` ,而不是 `h_t_t_p`。
但是對于列表中沒有的其他縮寫,例如但是對于列表中沒有的其他縮寫,例如`SKU`,db名是 `s_k_u`,此次更新修復了該問題。
- `RecordNotFound` 錯誤已被重命名為 `ErrRecordNotFound`
- `mssql` 已被重命名為 ”github.com/jinzhu/gorm/dialects/mssql”
- `Hstore` 已移至 ”github.com/jinzhu/gorm/dialects/postgres”