v2.0 - 2020.08
GORM 2.0 從頭開始改寫,它引入了部分不相容的 API 變更和許多改進
- 效能改進
- 模組化
- 支援情境、批次新增、預先準備的陳述式模式、DryRun 模式、加入預載、尋找對應、從對應建立、批次尋找
- 支援巢狀交易/儲存點/回滾至儲存點
- 支援命名參數、群組條件、Upsert、鎖定、最佳化器/索引/註解提示、子查詢改進
- 支援完全自參考關係、加入表格改進、批次資料關聯模式
- 支援多個欄位追蹤建立/更新時間,並新增對 UNIX(毫秒/奈秒)秒數的支援
- 欄位權限支援:唯讀、唯寫、唯建立、唯更新、忽略
- 新的外掛系統:多個資料庫、讀/寫分離支援,搭配外掛資料庫解析器、prometheus 整合…
- 新的 Hooks API:與外掛的統一介面
- 新的 Migrator:允許為關係建立資料庫外來鍵、約束/檢查器支援、增強索引支援
- 新的 Logger:情境支援、改進的可擴充性
- 統一的命名策略:表格名稱、欄位名稱、加入表格名稱、外來鍵、檢查器、索引名稱規則
- 更好的自訂資料類型支援(例如: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