Skip to content

Instantly share code, notes, and snippets.

@jjesusfilho
Last active September 23, 2024 13:03
Show Gist options
  • Save jjesusfilho/0710bd1428a12a4f922935bc86c9d24f to your computer and use it in GitHub Desktop.
Save jjesusfilho/0710bd1428a12a4f922935bc86c9d24f to your computer and use it in GitHub Desktop.
Faz dump de tabela SQL aos poucos.
#' Faz dump de uma tabela em arquivos rds
#'
#' @param conn Connexão
#' @param schema Schema
#' @param table Tabela
#' @param n Número de linhas arquivo
#' @param diretorio Diretório onde os arquivos serão salvos
#'
#' @details Esta função é particularmente útil para fazer dump de tabelas muito grandes
#'
#' @return NULL
#' @export
#'
sql_dump <- function(conn, schema, table, n,diretorio){
rs <- DBI::dbSendQuery(conn, sprintf("SELECT * FROM %s.%s", schema, table))
i <- 1
while(DBI::dbHasCompleted(rs) == FALSE){
arquivo <- file.path(diretorio, sprintf("api_%s.rds", i)))
DBI::dbFetch(rs,n) |>
saveRDS(arquivo)
i <- i+1
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment