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