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 关注
- 161 浏览
添加回答
举报
0/150
提交
取消