首页 > 解决方案 > st_write 无法添加到非公共架构

问题描述

我正在尝试使用 sf 包中的函数 st_write 将数据写入非公共模式

我无法更改以下连接到数据库的方式,因为它会破坏所有其他功能 -

create_db_connection <- function(host, dbuser, dbpassword){
  drv = RPostgreSQL::PostgreSQL()
  DBuser = dbuser
  DBhost = host
  DBport = "5432"
  DBpassword = dbpassword
  db = RPostgreSQL::dbConnect(drv, dbname = "DIFM", user = DBuser, host = DBhost, port = DBport, password = DBpassword)

  return(db)
}

使用上面的连接,我尝试了以下 -

1. sf::st_write(obj = obj_geom, dsn = db, layer = c(schema_name, "temp_geometrytable"), row.names = FALSE, append = TRUE)

2. sf::st_write(obj = obj_geom, dsn = db, DBI::Id(schema=schema_name, table = "temp_geometrytable"), row.names = FALSE, append = TRUE)

但是所有这些都不断添加到公共架构中,但我想动态提供架构名称,然后将对象添加到数据库中到非公共架构中

标签: rgeometrypostgissf

解决方案


推荐阅读