R/nhs_connect.R

Defines functions nhs_Connect

Documented in nhs_Connect

#' Connect PostgreSQL
#'
#' @param user user, default is 'postgres'
#' @param password password, default is 'pg'
#' @param dbname database name, default is 'nhanes'
#' @param host default is 'localhost'
#' @param port default is 5432
#' @param ... passed to DBI::dbConnect()
#'
#' @return connection with PostgreSQL
#' @export
#'
nhs_Connect <- function(user='postgres',
                        password = 'pg',
                        dbname="nhanes",
                        host="localhost",
                        port=5432,...){

    conn <- DBI::dbConnect(RPostgreSQL::PostgreSQL(),
                          user = user,
                          password = password,
                          host=host,
                          port=port)

    # create database
    datname <- as.data.frame(dplyr::tbl(conn,dbplyr::sql('SELECT datname FROM pg_database')))[,1]
    if (! 'nhanes' %in% tolower(datname) & dbname=="nhanes"){
        message('\ncreate database nhanes')
        DBI::dbGetQuery(conn = conn,
                        statement = "CREATE DATABASE nhanes;")
    }
    conn <- DBI::dbConnect(RPostgreSQL::PostgreSQL(),
                           user = user,
                           password = password,
                           host=host,
                           port=port,
                           dbname=dbname,...)
    dbplyr::src_dbi(con = conn, auto_disconnect = TRUE)
}
yikeshu0611/nhanesR documentation built on Jan. 29, 2022, 6:08 a.m.