在Ruby脚本中,我想通过URL 连接到Postgres DB ,并执行简单的SELECT * FROM users
hello world查询。
这样做的宝石是什么?我还没找到任何可以通过网址连接的宝石。
我发现最有希望的是https://bitbucket.org/ged/ruby-pg/wiki/Home,但它的所有文档链接都被破坏了,而Github repo让它看起来不像是一个受欢迎的选择。
答案 0 :(得分:1)
The pg
gem,它是Ruby的主要PostgreSQL接口,支持用于指定要连接的数据库的URL。这是因为它只是PostgreSQL libpq
的包装器,而libpq
支持三种指定连接的方式:
传递给图书馆的host
,password
等个人设置;
PostgreSQL"连接字符串"像dbname=mydb user=fred password=d00rmat host=localhost port=5432 sslmode=require
;或
JDBC样式的网址,例如jdbc:postgresql://fred:d00rmat@localhost:5432/mydb?sslmode=require
所以你不需要做任何特别的事情。它已pg
通过libpq
支持。
现在,如果实际想要的是查询PostgreSQL数据库,就像Web服务API ,例如
http://my-postgresql-server/q?query="SELECT * FROM users;"
并得到如下答案:
[
{"id":1, "name":"fred", ...},
...
]
...... PostgreSQL不直接支持。您需要一个中间层工具来公开PostgreSQL的Web服务API和代理。认真思考非常关于允许客户端应用程序发送任意SQL的安全隐患;这通常是一个非常糟糕的设计,您应该使用请求方法编写适当的Web服务API,如:
http://my-appserver/api/1.0/fetchAllUsers
答案 1 :(得分:0)
'' gem是Postgres在Ruby中支持的宝石(假设你没有使用JRuby,那就是)。
这是最终来自https://bitbucket.org/ged/ruby-pg/wiki/Home的宝石。不确定你看到了什么问题。也许有一个问题是,如果你要将它添加到你的Gemfile中,那么你应该使用名称' pg'而不是过时的名称' ruby-pg'。
是什么让你觉得它不受欢迎?
维基看起来对我好(主页最后更新于2个月前)。如果您对维基有问题,请将其报告给维护者。
至于通过' URL'进行连接,是指JDBC风格的URL吗?