我想知道当这两个驱动程序具有相同名称时,是否有一种方法或投影模式能够在运行时在 Golang 中选择 SQL 驱动程序。我想使用环境变量在 HTTP ClickHouse 驱动程序 ( https://github.com/mailru/go-clickhouse ) 和本机 TCP ClickHouse 驱动程序 ( https://github.com/ClickHouse/clickhouse-go ) 之间切换。
import(
//HTTP driver
_ "github.com/mailru/go-clickhouse"
)
func getHttpCHConnection() (*sql.DB, error) {
...
db, err := sql.Open("clickhouse", clkConnUrl)
import(
//Native driver
_ "github.com/ClickHouse/clickhouse-go"
)
func getNativeCHConnection() (*sql.DB, error) {
...
db, err := sql.Open("clickhouse", clkConnUrl)
通常,它会导致“恐慌:sql:为驱动程序 clickhouse 调用两次注册”。有可能避免这种情况吗?
牧羊人nacy
相关分类