0

I would like to better document my code rather than having a statement like the below:

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

How do I know what is what in this statement? Is it possible to point out each parameter to the method like this: port => 5433, host=> xxx

How better write the connection string? what are the empty 3rd and 4th parameters?

Thanks

the Tin Man
  • 158,662
  • 42
  • 215
  • 303
Doublespeed
  • 1,153
  • 4
  • 16
  • 29

1 Answers1

2

The arguments to connect in array form are: host, port, options, tty, dbname, user, and password.

The 3rd argument can contain one or more runtime options, e.g.,

[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"]]

The 4th argument isn't used anymore, but remains for backward-compatibility.

You can also pass a hash of options when connecting, as you suggested, which is a bit clearer:

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

The available keys are listed in the API documentation for PG::Connection.new.

Michael Granger
  • 1,358
  • 9
  • 14