簡體   English   中英

如何使用sinatra / sequel設置application_name

[英]How to set application_name with sinatra/sequel

我在連接字符串中設置application_name ,如下所示:

DB = Sequel.connect(:adapter=>'postgres', :host=> 'localhost',
:database=>'blah', :user=>'gator',
:application_name => 'blahwebapp')

但是,當我查看pg_stat_activity或任何其他按application_name篩選的度量標准時,我沒有看到它分配正確。

我的Pg寶石是“ pg(0.17.0)”,我相信從0.16開始,它就能夠處理應用程序名稱。 sequel_pg為(1.6.8),Sequel為(4.2.0)。

設置了應用程序名稱,但它與路徑/網絡服務器相關,而不是在配置中設置的名稱:

/Users/gator/.rvm/gems/rub...47@blahwebapp/bin/shotgun

即使當我使用URL類型的連接字符串時,它仍然沒有注冊application_name

DB = Sequel.connect('postgres://gator@localhost/blah?application_name=blahwebapp')

那是我在psql中用於連接的URL,它顯示得很好。

在Sequel 的文檔中 ,我對application_name的選擇不太了解,這讓我擔心:

關於如何使其尊重application_name任何想法/想法?

Sequel的PostgreSQL適配器不會將URL直接傳遞給PostgreSQL。 它不能真正做到並保持向后兼容性。

看來您可以在運行時設置application_name 用Sequel做到這一點的最好方法是通過after_connect:

DB = Sequel.connect('postgres://gator@localhost/blah', :after_connect=>proc{|c| c.execute("SET application_name TO 'blahwebapp'")})

可以將此功能集成到Sequel中,以便在“ postgres://” URL中使用它可以正常工作。 我願意接受其他人認為這將是有用的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM