#r #postgresql #rpostgresql
Вопрос:
Мне интересно, есть ли способ импортировать дамп PostgreSQL через R (RPostgreSQL) в базу данных PostgreSQL.
Я понимаю, что именно так мы записываем csv или данные из R в PostgreSQL через RPostgreSQL.
dbWriteTable(con, 'mtcars', mtcars)
Таким образом, мы можем импортировать дамп в базу данных PostgreSQL в терминале.
i /Users/Downloads/mypostgres.dump
Есть ли способ импортировать дамп в PostgreSQL через пакет R, чтобы мне не нужно было покидать интерфейс R?
Ответ №1:
Вы могли бы воспользоваться system
и позвонить psql
:
system('psql my_new_db < /Users/Downloads/mypostgres.dump')
Комментарии:
1. Это
system()
дает мне подсказку о том, как запускать терминалы PostgreSQL в R, что решает для меня много проблем. Этоpg_restore
не работает для меня в этом случае, но я нашелsystem('psql my_new_db < /Users/Downloads/mypostgres.dump')
. Если вы хотите отредактировать свой ответ, я с удовольствием отмечу это галочкой.2. @Gnin, спасибо за ваш отзыв : редактирование завершено!
Ответ №2:
Вы можете попробовать:
library("RPostgreSQL")
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, dbname = "postgres",
host = "localhost", port = 5432,
user = "openpg", password = "password")
dbWriteTable(con, "cartable", value = mtcars, append = TRUE, row.names = FALSE)
#Test if it is there
head(dbGetQuery(con, "SELECT * from cartable"))
# mpg cyl disp hp drat wt qsec vs am gear carb
#1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1