R/flaky_write.R

Defines functions flaky_write

Documented in flaky_write

#' Write data to Snowflake
#'
#' Move a local data frame to Snowflake. Ensures table and column names are upper case.
#'
#' @param .data A tbl. The data we wish to write.
#' @param table_schema Name of target schema.
#' @param table_name Name of target table
#' @param ... Additional parameters to pass on to [DBI::dbWriteTable()]. append, overwrite, etc.
#' @param con A connection object. Typically generated by [flaky_connect()].
#'
#' @export
#'
#' @examples
#' \dontrun{
#' # Write to rdata.mtcars
#' mtcars %>% flaky_write("rdata", "mtcars")
#' }
flaky_write <- function(.data, table_schema, table_name, ..., con = getOption("flaky.con")) {
  DBI::dbWriteTable(
    conn = con,
    name = DBI::Id(schema = toupper(table_schema), table = toupper(table_name)),
    value = .data %>% dplyr::rename_all(toupper),  # Snowflake needs ALL CAPS
    ...
  )
}
ndiquattro/flaky documentation built on Nov. 23, 2020, 6:26 p.m.