Ruby中Postgres查询的简单例子

对于我的生活,我找不到一个简单的例子来运行类似的东西

"SELECT * FROM MyTable"

在Ruby中。 我发现的所有东西都假设为ORM或Rails。 现在,我不想要ORM; 我不想要Rails。 我正在寻找一些独立的,使用pg gem并执行一个简单的查询。

从pg gem文档( http://rubydoc.info/gems/pg/0.10.0/frames

 require 'pg' conn = PGconn.open(:dbname => 'test') res = conn.exec('SELECT 1 AS a, 2 AS b, NULL AS c') res.getvalue(0,0) # '1' res[0]['b'] # '2' res[0]['c'] # nil 

我的下一个问题将是需要密码的数据库的身份validation。 看起来你可以发送像这样的连接string:
PGconn.connect( "dbname=test password=mypass")或者使用带参数的构造函数:
PGconn.new(host, port, options, tty, dbname, login, password)或者使用一个哈希像:password => '...' 在这里看到所有可用的选项。

尝试这个:

 require 'pg' conn = PGconn.connect("ip adddress", 5432, '', '', "db name", "user", "password") res = conn.exec('select tablename, tableowner from pg_tables') res.each do |row| puts row['tablename'] + ' | ' + row['tableowner'] end 

对于gem pg的新版本(例如,0.18.3到当前最新版本0.21.0),而不是使用:

 conn = PGconn.connect(*args) 

(PGconn,PGresult和PGError常量已被弃用,从版本1.0开始将被删除。)

你应该使用conn = PG.connect(*args) ,例如:

 require 'pg' conn = PG.connect("IP-Address", 5432, '', '', "database-name", "username", "password") res = conn.exec('select product_id, description, price from product') res.each do |row| puts row end 

参考链接: gem pg