rquery:连接到Postgres DB中的特定架构

时间:2019-06-04 09:25:30

标签: r rquery

rquery软件包已经推出了一段时间,但是文档仍然很稀疏。 SO中甚至还没有标签,这个问题会创建它。

也许有人可以帮助我。

我想通过rquery连接到我的Postgres-DB中的模式,以便以其所承诺的所有速度将数据读入R。

使用此代码,它可以与public模式中的所有表一起使用。

library(RPostgres)
library(rquery)

con <- dbConnect(RPostgres::Postgres(),
                 host = #####,
                 dbname = #####,
                 user = #####,
                 password = ######)

df <- db_td(con, "tablename")  %.>%
        execute(con, .)

现在,当我想访问特定模式db_td()中的表时,其参数qualifiers =

  

可选的带有字符串的命名有序向量   其他数据库层次结构术语,例如架构

我做到了:

db_td(db, "tablename", qualifiers = c(schema = "schema"))

但是:

  

result_create(conn @ ptr,语句)中的错误:无法准备   查询:FEHLER:关系»表名«存在线1:选择   * FROM“ tablename” LIMIT 1

因此qualifiers =参数似乎被完全忽略了。

因此,我的问题很基本:

如何通过rquery连接到PostgresDB中的架构?

2 个答案:

答案 0 :(得分:2)

我为解决此问题“ rquery”所做的所有尝试似乎都失败了,但是您可以通过执行以下操作来解决此问题:

dbExecute(con, "SET search_path = foo_schema, public;")

在运行db_td之前。

我认为是rq_colnames doing造成的:

paste0("SELECT * FROM ", quote_identifier(db, table_name), 
        " LIMIT 1")

,因此对其qualifiers不执行任何操作,至少与我得到的错误匹配。

如果这还不够,可能会报告rquery的错误/问题

答案 1 :(得分:0)

我在github上创建了issue。到目前为止,常规rquery确实没有架构功能。到目前为止,rquery1.3.4)的开发版本已具有基本架构功能。

通过以下方式安装:

library(devtools)

install_github("WinVector/rquery",  host = "https://api.github.com")

Here是一个小指令。似乎确实像我在问题中尝试的那样工作。

但是请注意,rquery尚未在架构模式下经过全面测试,某些功能可能无法正常工作。

编辑:rquery现在具有完整的架构支持。