Gorm Sqlite 測試相關問題

failed to initialize database 原因 golang + gorm 搭配 sqlite 練習測試的時候發現, 把 db 用 go-sqlmock 的替換掉後,在跑測試時會噴 failed to initialize database, got error all expectations were already fulfilled, call to Query 'select sqlite_version()' mysql 解法 如果 db 是用 mysql 的話,只要這樣設定 gDB, err := gorm.Open(mysql.New(mysql.Config{ Conn: DB, SkipInitializeWithVersion: true, }), &gorm.Config{}) 細節可以參考 source code sqlite 暫解 不過在 sqlite 上面看 code 是沒有開這個參數 source code 因為只是練習,所以我這邊先直接寫一個新的 MockDialector 把它掛進來, 然後把 sqlite.Dialector() 複製過來後把 version 不需要的地方拿掉。 實際上應該把相關的 code 都看過,確認是不是有必要開這個參數出來,然後發個 issue , 如果沒問題 pr 做出來之類的?...

February 10, 2022 · 2 min · Me