0

我想更好地记录我的代码,而不是像下面这样声明:

pg_c = PGconn.connect("Main-my_db_lk", 5433, '', '', "report_center", "repozenter", "rp_23_xhg")

我怎么知道这个声明是什么?是否可以像这样指出方法的每个参数:port => 5433, host=> xxx

如何更好地编写连接字符串?什么是空的第三个和第四个参数?

谢谢

4

1 回答 1

2

以数组形式连接的参数是:主机、端口、选项、tty、dbname、用户和密码。

第三个参数可以包含一个或多个运行时选项,例如,

[1] pry(main)> c = PG.connect( '', '', '-c search_path=public,test', '', 'test' )
=> #<PG::Connection:0x007f9e19c16d30>
[2] pry(main)> c.exec( 'show search_path' ).values
=> [["public,test"]]

第 4 个参数不再使用,但仍然是为了向后兼容。

正如您所建议的,您还可以在连接时传递选项哈希,这更清楚一点:

conn = PG.connect( :dbname => 'test', :user => 'postgres' )

PG::Connection.new 的 API 文档中列出了可用的密钥。

于 2013-03-21T15:55:14.923 回答