首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用"github.com/jackc/pgx".Connect时参数过多

调用"github.com/jackc/pgx".Connect时参数过多
EN

Stack Overflow用户
提问于 2021-08-04 16:57:12
回答 1查看 193关注 0票数 1

我正在尝试使用pgx打开到postgres数据库的连接,但收到以下错误:

代码语言:javascript
复制
./dbservice.go:12:26: too many arguments in call to "github.com/jackc/pgx".Connect
        have (context.Context, string)
        want ("github.com/jackc/pgx".ConnConfig)
./dbservice.go:13:18: too many arguments in call to conn.Close
        have (context.Context)
        want ()
./dbservice.go:21:44: cannot use context.Background() (type context.Context) as type string in argument to conn.Query

我不确定这个错误要求我在这里做什么。当我从主文件调用pgx.Connect时,它可以工作,但在这里它不能工作。代码如下:

代码语言:javascript
复制
func initNodes(nodes *[]Node, searchNodes *[]SearchNode, storageNodes *[]StorageNode) error {
    conn, err := pgx.Connect(context.Background(), DATABATE_URL)
    defer conn.Close(context.Background())

    if err != nil {
        fmt.Printf("Connection failed: %v\n", err)
        os.Exit(-1)
    }
...

func main() {
    a:= Arbiter{}
    a.init()
}

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-04 21:46:07

最有可能的情况是,您正在将v3 pgx API导入到dbservice.go中,而将v4 API导入到您的“主文件”中。github.com/jackc/pgx/v4中的Connect函数接受您传递的两个参数。v3中的Connect函数接受pkg.ConnConfig

因此,在dbservice.go中检查您的import语句:如果您打算使用v4应用程序接口,请将其导入为"github.com/jackc/pgx/v4"

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68655278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档