sqlite3, err := sql.Open("sqlite3", "./map.gpkg")if err != nil { panic(err.Error())}_, err = sqlite3.Exec("select load_extension('mod_spatialite');")if err != nil { panic(err.Error())}當我嘗試將 spatialite 擴展加載到 sqlite3 時,它返回一個未授權的錯誤,我不知道如何修復它。panic: not authorizedgoroutine 1 [running]:main.main() /Users/u/project/project/golang_project/pack/sql/main.go:42 +0x145exit status 2
2 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
您需要使用 SQLiteDriver 的 Extensions 字段注冊擴展:
sql.Register("sqlite3_TestExtensionsError",
&sqlite3.SQLiteDriver{
Extensions: []string{
"foobar",
},
},
)
見這個例子:https ://github.com/mattn/go-sqlite3/blob/1157a4212dcb650962563f67cd405794e9115b45/sqlite3_load_extension_test.go#L15

瀟湘沐
TA貢獻1816條經驗 獲得超6個贊
sql.Register("sqlite3_with_extensions",
&sqlite3.SQLiteDriver{
Extensions: []string{
"mod_spatialite",
},
})
db, err := sql.Open("sqlite3_with_extensions", "./map.gpkg")
if err != nil {
panic(err.Error())
}
我如上所述更改了代碼,并且我的代碼工作正常。
- 2 回答
- 0 關注
- 192 瀏覽
添加回答
舉報
0/150
提交
取消