如何在golang lib / pq postgresql驱动程序中设置应用程序名称?

时间:2017-03-14 16:09:12

标签: postgresql go

我正在编写golang应用程序并使用golang postgres驱动程序 - https://github.com/lib/pq/

我使用像这样的连接字符串

'name:pass@host:port/dbname'

我尝试在conn字符串中添加aplication_name param,但这不起作用

'name:pass@host:port/dbname?application_name=myapp'

是否可以从golang设置应用程序名称? (标准方式)

3 个答案:

答案 0 :(得分:3)

如果您查看documentation,则不会提供application_name选项。也许你可以使用:

  

fallback_application_name - 要返回if的application_name   没有提供。

name:pass@host:port/dbname?fallback_application_name=myapp

答案 1 :(得分:1)

您可以使用以下两种方法之一设置应用程序名称。

// Application name as space-separated list of options.
sql.Open("postgres", "user=myuser password=mypass host=localhost port=5432 dbname=mydb sslmode=disable application_name=myapp")

// Application name as query param.
sql.Open("postgres", "postgres://myuser:mypass@localhost:5432/mydb?sslmode=disable&application_name=myapp")

答案 2 :(得分:0)

即使文档中未提及,但是如果您查看lib/pq源代码,也会发现支持application_name

此样式连接可根据需要工作:

connstring := fmt.Sprintf("user='%s' password='%s' dbname='%s' host='%s' application_name='%s'", user, password, dbname, host, application_name)
db, err := sql.Open("postgres", connstring)