使用Ruby使用db url查询Postgres数据库

时间:2014-09-09 00:37:24

标签: ruby postgresql

在Ruby脚本中,我想通过URL 连接到Postgres DB ,并执行简单的SELECT * FROM users hello world查询。

这样做的宝石是什么?我还没找到任何可以通过网址连接的宝石。

我发现最有希望的是https://bitbucket.org/ged/ruby-pg/wiki/Home,但它的所有文档链接都被破坏了,而Github repo让它看起来不像是一个受欢迎的选择。

2 个答案:

答案 0 :(得分:1)

JDBC样式的URL?

The pg gem,它是Ruby的主要PostgreSQL接口,支持用于指定要连接的数据库的URL。这是因为它只是PostgreSQL libpq的包装器,而libpq支持三种指定连接的方式:

  • 传递给图书馆的hostpassword等个人设置;

  • 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支持。

Web服务式查询?

现在,如果实际想要的是查询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吗?