Go Database Connector:go-sql-driver 工作,其他一切都"unknown driver, forgotten import?"



当我尝试以这种方式使用数据库/sql时,它会编译和工作:

import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)

但是如果我尝试使用 postgres 特定的连接器,它甚至无法编译:

import(
"database/sql"
_ "github.com/lib/pq"
)
import(
"database/sql"
_ "github.com/jbarham/gopgsqldriver"
)

两者都失败并显示错误

sql: unknown driver "mysql" (forgotten import?)

我已经为这两个包做了go,并且真的不确定为什么它没有编译

你在做吗

db, err := sql.Open("mysql",

以后呢? 例如,当您导入"github.com/lib/pq"时,它通过调用sql.Register来注册自身,然后在sql.Open的源中您有:

func Open(driverName, dataSourceName string) (*DB, error) {
driversMu.RLock()
driveri, ok := drivers[driverName]
driversMu.RUnlock()
if !ok {
return nil, fmt.Errorf("sql: unknown driver %q (forgotten import?)", driverName)
}
}

因此,由于您不再导入mysql,您需要更改sql.Open以使用pq驱动程序(或最终选择的任何驱动程序(。

相关内容

最新更新