(RPostgres) dbWriteTable 사용시에 dbname, schema 설정하기

PostgreSQL DB에 데이터를 만들어 넣을 때, RPostgres 패키지를 사용하면 된다. 데이터프레임을 가지고 DB에 select, insert, update, delete 하는 모든 기능을 R프로그램을 이용해서 다 처리할 수 있다. 그 중에, 데이터베이스이름 dbname 과 스키마이름 schema 을 제대로 설정해서 원하는 스키마에 테이블을 만들어보는 것을 정리해본다.

PostgreSQL DB 접속하기

PostgreSQL 에서 creart-01 이란 데이터베이스 영역을 만들고, 그 안에 app01 이라는 스키마를 만들었다. DBeaver SQL툴을 이용해서 접속해보면, 아래와 같은 구조를 확인할 수 있다.

R프로그래밍에서 RPostgres 패키지를 이용하면 쉽게 커넥션 객체를 만들수 있다. 여기서는 dbname 만 셋팅할 수 있다.

library(RPostgres)
library(DBI)

con <- dbConnect(RPostgres::Postgres(),
                 dbname = 'creart-01', 
                 host = 'localhost', 
                 port = 5432, 
                 user = 'postgres',
                 password = '1111')

특정 schema에 테이블 만들기

dbWriteTable을 사용하면 테이블이 만들어지면서 데이터까지 들어가진다. 근데 테이블명만 입력하면, public 스키마에 테이블이 만들어진다.

dbWriteTable(con, 
             "sofr_rate", 
             value = tb_sofr_rate)

하지만 app01 스키마에 테이블을 만들고 싶다면, 아래 처럼 Id 함수를 이용해서 테이블을 지정하면 된다. 이렇게되면 app01 스키마 하위에 테이블이 만들어진걸 볼 수 있다.

dbWriteTable(con, 
             Id(schema = "app01", table = "sofr_rate"), 
             value = tb_sofr_rate)


더 보면 좋을 글들