diff --git a/R/get_data.R b/R/get_data.R index d5af292e46ab036b9176b4a5ff716c6d553ac9cd..d9111fed8411485a55f37067311570d37b106b89 100644 --- a/R/get_data.R +++ b/R/get_data.R @@ -99,7 +99,7 @@ importer_data <- function(table = NULL, schema = NULL, db = "production", server } else { sql_query <- paste0("SELECT unnest(df_def[1:1]) as nms, unnest(df_def[2:2]) as defs, unnest(df_def[3:3]) as atts, unnest(df_def[4:4]) as r_nms FROM ", schema, ".\"zz_r_df_def\" WHERE table_nm = '", table, "';") - defs <- dbGetQuery(conn = con, sql_query) + defs <- DBI::dbGetQuery(conn = con, sql_query) } } else { message("La table de propri\u00e9t\u00e9s des dataframes R est introuvable, un import standard sera r\u00e9alis\u00e9. ") @@ -107,11 +107,11 @@ importer_data <- function(table = NULL, schema = NULL, db = "production", server defs = data.frame() } - # on distingue 3 cas : table geo, table de donnees chargee avec poster_data(), table de donnees chargees autrement + # on distingue 2 cas : table geo, table de donnees if(any(grepl("USER-DEFINED", champs$data_type))) { # la signature des champs de geometry data_sf <- sf::st_read(dsn = con, layer = c(schema, table)) - if ("id_row__" %in% champs$column_name) { # on enleve le champ de cle primaire eventuellement cree + if ("id_row__" %in% champs$column_name) { # on enleve le champ de cle primaire eventuellement cree après avoir remis dans l'ordre les enregistrements data_sf <- dplyr::arrange(.data = data_sf, .data$id_row__) %>% dplyr::select(-.data$id_row__) } @@ -126,7 +126,7 @@ importer_data <- function(table = NULL, schema = NULL, db = "production", server } } - # repasser les noms de lignes en noms de lignes de dataset + # repasser les éventuelle noms de lignes en noms de lignes de dataset if ("r_row_names__" %in% champs$column_name) { data <- tibble::column_to_rownames(.data = data, var = "r_row_names__") defs <- dplyr::filter(defs, .data$nms != "r_row_names__") @@ -169,12 +169,13 @@ importer_data <- function(table = NULL, schema = NULL, db = "production", server } } - # remettre le champ geometrie + # remettre le champ geometrie (au bon endroit) if(exists("data_sf")) { sf::st_geometry(data) <- sf::st_geometry(data_sf) + data <- dplyr::select(data, dplyr::all_of(defs$nms)) } - # renommer avec les éventuels noms initiaux +# renommer avec les éventuels noms initiaux if(nrow(def_table) > 0) { data <- dplyr::select(data, dplyr::all_of(defs$nms)) names(data) <- defs$r_nms