Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Writing to specific schemas with RPostgreSQL

Tags:

r

postgresql

I'm using RPostgreSQL to read and write data. Reading from any schema works perfectly, but I'm not able to write to non-public schemas. For example, the following code places a table in the public schema, with the name myschema.tablex

# write dataframe to postgres  drv <- dbDriver("PostgreSQL") con <- dbConnect(drv, host="localhost", user="postgres", password="zzzz", dbname="mydatabase", port="5436") if(dbExistsTable(con,"myschema.tablex")) {   dbRemoveTable(con,"myschema.vkt_tablex")} dbWriteTable(con,"myschema.tablex", dataframe, row.names=F) 

What I want to do, is to place the table tablex in the schema myschema. I've also tried to name the schema in the connection: dbname="mydatabase.myschema" and trying the argument schemaname which I saw referred to in an earlier bug.

None of these approaches work, so I'm wondering if there is another method that I can use.

like image 602
djq Avatar asked Apr 05 '12 16:04

djq


1 Answers

Use this:

library(RPostgreSQL) drv <- dbDriver("PostgreSQL") con <- dbConnect(drv, dbname = "db", host = "host", port = 5432,                  user = "user", password = "pwd") dbWriteTable(con, c("yourschema", "yourtable"), value = yourRdataframe) dbDisconnect(con) 

More details: https://stat.ethz.ch/pipermail/r-sig-db/2011q1/001043.html

like image 172
Tomas Greif Avatar answered Oct 04 '22 22:10

Tomas Greif