我想知道是否有人可以帮助解决这个恼人的问题。 我试图创建/建立到不同数据库的多个连接。 我有一个带有3个名为 conf 的连接凭据的data.frame - 如果我像这样手动输入连接变量,它可以工作:
conn <- dbConnect(MySQL(), user=conf$user, password=conf$passws, host=conf$host, dbname=conf$db)
最终创建单个连接。 但是,我想要的是能够将连接称为:
conf$conn <- dbConnect(MySQL(), user=conf$user, password=conf$passws, host=conf$host, dbname=conf$db)
这是我收到的错误消息。 rep(value,length.out = nrows)出错: 尝试复制类型为&#39; S4&#39;
的对象我认为问题在于我如何添加 conf $ conn
答案 0 :(得分:1)
我使用pool和config包的组合来解决类似的问题,以设置多个同时PostgreSQL连接。请注意,此解决方案需要config.yml
文件,其中包含db1
和db2
的连接属性。
library(pool)
library(RPostgreSQL)
connect <- function(cfg) {
config <- config::get(config = cfg)
dbPool(
drv = dbDriver("PostgreSQL", max.con = 100),
dbname = config$dbname,
host = config$host,
port = config$port,
user = config$user,
password = config$password
)
}
conn <- lapply(c("db1", "db2"), connect)