diff --git a/DESCRIPTION b/DESCRIPTION index 10d72c987e03bd7e5a4264db549e9afc14f95fea..7e0b5f6fb0d7c753f0fceff79fe8fb335971c829 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: datalibaba Title: Interface De Connexion a Une Base Posgres Postgis -Version: 0.0.0.9007 +Version: 0.0.0.9008 Authors@R: c(person(given = "Maël", family = "Theulière", @@ -24,6 +24,7 @@ Imports: odbc, purrr, rpostgis, + RPostgres, RPostgreSQL, sf, tidyselect, @@ -35,8 +36,7 @@ Imports: tidyr Suggests: knitr, - rmarkdown, - RPostgres + rmarkdown Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE) diff --git a/NEWS.md b/NEWS.md index 2986b0b35500bcdba9190b1dca43d58caf5095cd..3172aab5a63671765a81ea5616845734fe682b25 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,6 @@ +# datalibaba 0.0.0.9008 +- Ajout d'un paramètre booleen `ecoSQL` à la fonction `connect_to_db` pour switcher de driver (passage du `DBI::dbDriver("PostgreSQL")` si `EcoSQL = FALSE`, à `RPostgres::Postgres()` si `ecoSQL = TRUE` adapté à l'usage de l'offre d'hébergement de base EcoSQL) + # datalibaba 0.0.0.9007 - Ajout d'un paramètre `limit` à `importer_data()` pour limiter le nombre d'enregistrement à rapatrier diff --git a/R/comment_db.R b/R/comment_db.R index 1e924dd8c18737253a0f87535c2e3cc9cafa36f9..773e76ce8794be8363bf7ff485294d1150e00279 100644 --- a/R/comment_db.R +++ b/R/comment_db.R @@ -3,6 +3,7 @@ #' @param db : base de données dont on recherche le descriptif. #' @param user : l'identifiant de l'utilisateur SGBD qui se connecte #' @param server : l'adresse IP du serveur, laisser à NULL pour utiliser la variable d'environnement du .Renviron +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' @return le commentaire de la bases de données dans un dataframe avec les champs (nom_base, commentaire) #' #' @export @@ -12,9 +13,9 @@ #' @importFrom rlang .data -get_db_comment <- function(db = "public", user = "does", server = NULL) { +get_db_comment <- function(db = "public", user = "does", server = NULL, ...) { # Connexion à la base de données - con <- datalibaba::connect_to_db(db = db, user = user, server = server) + con <- datalibaba::connect_to_db(db = db, user = user, server = server, ...) # Construction de la requête SQL pour récupérer le commentaire de la base de données query <- "SELECT datname AS nom_base, description AS commentaire FROM pg_database JOIN pg_shdescription ON pg_database.oid = pg_shdescription.objoid WHERE datname = current_database();" @@ -38,15 +39,16 @@ get_db_comment <- function(db = "public", user = "does", server = NULL) { #' @param schema : le nom du schema a commenter #' @param db : le nom de la base qui contient le schema a commenter #' @param user : l'identifiant de l'utilisateur SGBD qui se connecte +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' @importFrom attempt stop_if #' @importFrom DBI dbDisconnect #' @importFrom rpostgis dbComment #' @return NULL #' @export -commenter_schema <- function(comment = NULL, schema = NULL, db = "public", user = "does") { +commenter_schema <- function(comment = NULL, schema = NULL, db = "public", user = "does", ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db, user) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db, user, ...) # verification de la validite des arguments attempt::stop_if(comment, is.null, msg = "L'argument comment n\'est pas renseign\u00e9. ") @@ -67,6 +69,7 @@ commenter_schema <- function(comment = NULL, schema = NULL, db = "public", user #' @param db : Le nom de la base qui contient le schema dont on recherche le descriptif. #' @param user : l'identifiant de l'utilisateur SGBD qui se connecte #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' @return le commentaire recherche dans un dataframe de 3 champs (base, nom_schema, commentaire) #' #' @export @@ -76,9 +79,9 @@ commenter_schema <- function(comment = NULL, schema = NULL, db = "public", user #' @importFrom rlang .data -get_schema_comment <- function(schema = NULL, db = "public", user = "does", server = NULL) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db = db, user = user, server = server) +get_schema_comment <- function(schema = NULL, db = "public", user = "does", server = NULL, ...) { + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db = db, user = user, server = server, ...) # verification de la validite des arguments attempt::stop_if(schema, is.null, msg = "L\'argument schema n\'est pas renseign\u00e9. ") diff --git a/R/commenter_champs.R b/R/commenter_champs.R index 61c6256a19cd4852989ad3150a92051a541810e3..86a076ecd17a7f1d107bb9d5aacb4aeeca9e4339 100644 --- a/R/commenter_champs.R +++ b/R/commenter_champs.R @@ -8,6 +8,7 @@ #' @param db : Le nom de la base qui contient la table a commenter. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @importFrom attempt stop_if stop_if_not #' @importFrom DBI dbSendQuery dbDisconnect @@ -23,10 +24,11 @@ #' schema = "public", db = "public", user = "does") #' } -commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { +commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = NULL, + db = "public", user = "does", server = NULL, ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db = db, user = user, server = server) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db = db, user = user, server = server, ...) # verification de la validite des arguments attempt::stop_if(comment, is.null, msg = "L\'argument comment n\'est pas renseign\u00e9. ") @@ -60,6 +62,7 @@ commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = #' @param db : Le nom de la base qui contient la table a commenter. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @importFrom attempt stop_if_not stop_if #' @importFrom DBI dbSendQuery dbDisconnect @@ -71,16 +74,16 @@ commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = #' #' @examples #' \dontrun{ -#' dico_iris <- data.frame(VAR = names(iris), VAR_LIB = paste("libell\u00e9 de", names(iris))) +#' dico_iris <- data.frame(VAR = names(iris), VAR_LIB = paste("libell\u00e9 de", names(iris), " cc")) #' post_dico_attr(dico = dico_iris, table = "test_iris", schema = "public", db = "public", #' user = "does", server = "localhost") #' } #' -post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { +post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "public", user = "does", server = NULL, ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db = db, user = user, server = server) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db = db, user = user, server = server, ...) # verification de la validite des arguments attempt::stop_if_not(dico, is.data.frame, msg = "L\'argument dico ne correpond pas \u00e0 un dataframe. ") @@ -128,6 +131,7 @@ post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "publi #' @param db : Le nom de la base qui contient la table dont on recherche le descriptif. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return le commentaire recherche dans un dataframe de 3 champs (nom_schema, nom_table, commentaire) et une ligne #' @export @@ -136,9 +140,9 @@ post_dico_attr <- function(dico = NULL, table = NULL, schema = NULL, db = "publi #' @importFrom dplyr transmute #' @importFrom rlang .data #' -get_table_comment <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db = db, user = user, server = server) +get_table_comment <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL, ...) { + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db = db, user = user, server = server, ...) # verification de la validite des arguments attempt::stop_if(schema, is.null, msg = "L\'argument schema n\'est pas renseign\u00e9. ") @@ -167,6 +171,7 @@ get_table_comment <- function(table = NULL, schema = NULL, db = "public", user = #' @param db : Le nom de la base qui contient la table dont on recherche le descriptif. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return les commentaires recherches dans un dataframe de 4 champs (nom_schema, nom_table, nom_col, commentaire) et autant de lignes que de champs de la table commentes #' @export @@ -174,10 +179,10 @@ get_table_comment <- function(table = NULL, schema = NULL, db = "public", user = #' @importFrom DBI dbGetQuery #' @importFrom dplyr filter distinct #' @importFrom rlang .data -get_cols_comment <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { +get_cols_comment <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL, ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db = db, user = user, server = server) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db = db, user = user, server = server, ...) # verification de la validite des arguments attempt::stop_if(table, is.null, msg = "L\'argument table n\'est pas renseign\u00e9. ") @@ -204,6 +209,7 @@ get_cols_comment <- function(table = NULL, schema = NULL, db = "public", user = #' @param db : Le nom de la base qui contient la table dont on recherche le descriptif. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. #' @param server L'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return les commentaires recherches dans un dataframe de 4 champs (nom_schema, nom_table, commentaire) et autant de lignes que de champs de la table commentes + 1 ligne pour la table #' @importFrom DBI dbDisconnect @@ -216,10 +222,10 @@ get_cols_comment <- function(table = NULL, schema = NULL, db = "public", user = #' user = "does", server = "localhost") #'} -get_table_comments <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL) { +get_table_comments <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL, ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db = db, user = user, server = server) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db = db, user = user, server = server, ...) com <- dplyr::bind_rows( get_table_comment(table = table, schema = schema, db = db, user = user, server = server), @@ -243,6 +249,7 @@ get_table_comments <- function(table = NULL, schema = NULL, db = "public", user #' @param db_dest : Le nom de la base qui contient la table que l'on souhaite decrire. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. #' @param server L'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return NULL #' @export @@ -255,17 +262,17 @@ get_table_comments <- function(table = NULL, schema = NULL, db = "public", user #' } transferer_table_comments <- function(table_sce = NULL, schema_sce = NULL, db_sce = "public", table_dest = table_sce, schema_dest = NULL, db_dest = "public", - user = "does", server = NULL) { + user = "does", server = NULL, ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con_dest <- connect_to_db(db = db_dest, user = user, server = server) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con_dest <- connect_to_db(db = db_dest, user = user, server = server, ...) # recuperation des commentaire de la table source tb_comment <- get_table_comments(table = table_sce, schema = schema_sce, db = db_sce, user = user, server = server) dico_atrbts <- tb_comment %>% dplyr::filter(!is.na(.data$nom_col)) %>% - dplyr::select(.data$nom_col, .data$commentaire) + dplyr::select("nom_col", "commentaire") # Envoi des commentaires sur la table de destination : commentaire de table, puis commentaires de champs. rpostgis::dbComment(conn = con_dest, name = c(schema_dest, table_dest), comment = tb_comment$commentaire[1], type = "table", exec = TRUE) @@ -291,6 +298,7 @@ transferer_table_comments <- function(table_sce = NULL, schema_sce = NULL, db_sc #' @param server L'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron. #' @param fichier L'adresse et le nom du fichier csv a creer, contenant le dictionnaire d'attributs et le commentaire de la tables a exporter. #' @param import booleen, TRUE si on souhaite egalement charger la table dans l'environnement R (FALSE par defaut). +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return les commentaires recherches dans un dataframe de 4 champs (nom_schema, nom_table, commentaire) et autant de lignes que de champs de la table commentes + 1 ligne pour le commentaire de table. #' @importFrom utils write.csv2 @@ -303,8 +311,8 @@ transferer_table_comments <- function(table_sce = NULL, schema_sce = NULL, db_sc #'} exporter_table_comments <- function(table = NULL, schema = NULL, db = "public", user = "does", server = NULL, - fichier = "dico_var.csv", import = FALSE) { - a <- get_table_comments(table = table, schema = schema, db = db , user = user, server = server) + fichier = "dico_var.csv", import = FALSE, ...) { + a <- get_table_comments(table = table, schema = schema, db = db , user = user, server = server, ...) utils::write.csv2(x = a, file = fichier, na = "", row.names = FALSE, fileEncoding = "utf-8") message("Export du dictionnaire des variables csv '", fichier, "'.") if(import) {return(a)} diff --git a/R/commenter_table.R b/R/commenter_table.R index c124a5bcecf814ea2e0c6e061dac8ed92b35e1af..09a67e13a665084d40e7fce398f0be22dded0402 100644 --- a/R/commenter_table.R +++ b/R/commenter_table.R @@ -5,6 +5,7 @@ #' @param schema : Le nom du schema qui contient la table a commenter. #' @param db : Le nom de la base qui contient la table a commenter. #' @param user : L'identifiant de l'utilisateur SGBD qui se connecte. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @importFrom attempt stop_if stop_if_not #' @importFrom DBI dbDisconnect @@ -19,10 +20,10 @@ #' schema = "public", db = "public", user = "does") #' } -commenter_table <- function(comment = NULL, table = NULL, schema = NULL, db = "public", user = "does") { +commenter_table <- function(comment = NULL, table = NULL, schema = NULL, db = "public", user = "does", ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") - con <- connect_to_db(db, user) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. + con <- connect_to_db(db, user, ...) # verification de la validite des arguments attempt::stop_if(comment, is.null, msg = "L'argument comment n\'est pas renseign\u00e9. ") diff --git a/R/connect_to_db.R b/R/connect_to_db.R index 04f03fc43ec2a68fccdd7c4861ae3688d566809b..bb4a30dbdb4ee6f57e56c42840510058f01b7165 100644 --- a/R/connect_to_db.R +++ b/R/connect_to_db.R @@ -5,7 +5,9 @@ #' @param user_id le nom utilisateur avec lequel se connecter tel que renseigné dans votre renviron #' @param user_pwd le mot de passe avec lequel se connecter tel que renseigné dans votre renviron #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron -#' @return La fonction cree un connecteur pour se connecter à la base posgresql du serveur via le driver DBI "PostgreSQL". +#' @param ecoSQL mettre à TRUE pour switcher vers un driver adapté à l'usage de l'offre d'hébergement de base EcoSQL (Experimental) +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` +#' @return La fonction cree un connecteur pour se connecter à la base posgresql du serveur via le driver DBI "PostgreSQL" ou `RPostgres::Postgres()` si `ecoSQL = TRUE`. #' @importFrom DBI dbDriver dbConnect #' @importFrom odbc odbc #' @importFrom glue glue @@ -19,9 +21,15 @@ connect_to_db <- function(db = "datamart", user = "does", user_id = paste0("user_", user), user_pwd = paste0("pwd_", user), - server = NULL){ + server = NULL, + ecoSQL = TRUE, + ...){ - drv <- DBI::dbDriver("PostgreSQL") + if(ecoSQL) { + drv <- RPostgres::Postgres() + } else { + drv <- DBI::dbDriver("PostgreSQL") + } if(is.null(server)) {server <- Sys.getenv("server")} @@ -30,8 +38,8 @@ connect_to_db <- function(db = "datamart", host=server, port=Sys.getenv("port"), user=Sys.getenv(user_id), - password=Sys.getenv(user_pwd) - ) + password=Sys.getenv(user_pwd), + ...) return(con) } diff --git a/R/get_data.R b/R/get_data.R index 73478b68007bcf9f5c3f8b570de19d3fbd5bc935..0f4b142c6cbe0b2d2fdc2438e527d810ba6052c3 100644 --- a/R/get_data.R +++ b/R/get_data.R @@ -6,10 +6,11 @@ #' @param user L'identifiant de l'utilisateur qui se connecte. #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron #' @param limit Le nombre d'enregistrements a rapatrier, 0 pour lire toute la table. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return la table de donnees, au format dataframe ou sf dataframe si une colonne de type 'USER-DEFINED' est presente dans la table sgbd #' @importFrom attempt stop_if stop_if_not -#' @importFrom DBI dbExistsTable dbReadTable dbDisconnect +#' @importFrom DBI dbExistsTable dbReadTable dbDisconnect Id #' @importFrom dplyr filter arrange select all_of relocate rename_with #' @importFrom glue glue #' @importFrom rlang .data @@ -25,16 +26,16 @@ #' @source {rpostgis} http://mablab.org/rpostgis/ -importer_data <- function(table = NULL, schema = NULL, db = "public", server = NULL, user = "does", limit = 0) { +importer_data <- function(table = NULL, schema = NULL, db = "public", server = NULL, user = "does", limit = 0, ...) { attempt::stop_if(table, is.null, msg = "l'argument table n'est pas renseign\u00e9") attempt::stop_if(schema, is.null, msg = "l'argument schema n'est pas renseign\u00e9") attempt::stop_if(db, is.null, msg = "l'argument db n'est pas renseign\u00e9") attempt::stop_if(user, is.null, msg = "l'argument user n'est pas renseign\u00e9") attempt::stop_if_not(limit, is.numeric, msg = "l'argument user n'est pas num\u00e9rique") - con <- connect_to_db(db = db, user = user, server = server) - name <- c(schema, table) - query_sql_limit <- paste0("SELECT * FROM ", schema, ".", table, " LIMIT ", limit) + con <- connect_to_db(db = db, user = user, server = server, ...) + ecoSQL <- grepl("RPostgres", attributes(class(con))) + if(ecoSQL) name = DBI::Id(schema = schema, table = table) else name = c(schema, table) attempt::stop_if_not(DBI::dbExistsTable(conn = con, name = name), msg = paste0("La table '", paste(name, collapse = "'.'"), "' est introuvable.")) @@ -43,8 +44,9 @@ importer_data <- function(table = NULL, schema = NULL, db = "public", server = champs <- rpostgis::dbTableInfo(conn = con, name = c(schema, table), allinfo = FALSE) # recupere-t-on des proprietes de dataframe R dans zz_r_df_def ? - if(DBI::dbExistsTable(conn = con, name = c(schema, "zz_r_df_def"))) { - def_table <- DBI::dbReadTable(con, c(schema, "zz_r_df_def")) %>% + if(ecoSQL) name_r_def = DBI::Id(schema = schema, table = "zz_r_df_def") else name_r_def = c(schema, "zz_r_df_def") + if(DBI::dbExistsTable(conn = con, name = name_r_def)) { + def_table <- DBI::dbReadTable(con, name_r_def) %>% dplyr::filter(.data$table_nm == table) if(nrow(def_table)==0) { message(paste0("Pas de renseignements trouv\u00e9 sur ", table, @@ -64,8 +66,9 @@ importer_data <- function(table = NULL, schema = NULL, db = "public", server = # on distingue 2 cas : table geo, table de donnees if(any(grepl("USER-DEFINED", champs$data_type))) { # la signature des champs de geometry if(limit == 0) { - data_sf <- sf::st_read(dsn = con, layer = c(schema, table)) + data_sf <- sf::st_read(dsn = con, layer = name) } else { + query_sql_limit <- paste0("SELECT * FROM ", schema, ".", table, " LIMIT ", limit) data_sf <- sf::st_read(dsn = con, query = query_sql_limit) } @@ -74,12 +77,13 @@ importer_data <- function(table = NULL, schema = NULL, db = "public", server = data_sf <- dplyr::arrange(.data = data_sf, .data$id_row__) %>% dplyr::select(-.data$id_row__) } + data <- sf::st_drop_geometry(data_sf) } else { # table classic (non géo) if(limit == 0) { - data <- DBI::dbReadTable(con, c(schema, table)) + data <- DBI::dbReadTable(con, name) } else { data <- DBI::dbGetQuery(con, query_sql_limit) } diff --git a/R/list_tables.R b/R/list_tables.R index 17cdcab025688e2bf2c2a185a589edd09977fcaa..854a2eeda4343a78b82978e9930bb5fb7aad51a0 100644 --- a/R/list_tables.R +++ b/R/list_tables.R @@ -4,6 +4,7 @@ #' @param db Le nom de la base de donnees a laquelle se connecter pour trouver le schema, si con n'est pas renseigne. #' @param user Le nom de l'utilisateur de la connexion au serveur de donnees, si con n'est pas renseigne. #' @param schema Le nom du schéma sur le serveur de données. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' @return Un vecteur de caractères avec les tables présentes sur le schéma schema du connecteur con. #' @importFrom attempt stop_if_all message_if_none stop_if stop_if_not #' @importFrom DBI dbGetQuery dbDisconnect @@ -15,7 +16,7 @@ #' list_tables(con = con, schema = "conjoncture") #' list_tables(schema = "conjoncture", db = "datamart", user = "does") #' } -list_tables <- function(con = NULL, schema = NULL, db = NULL, user = NULL) { +list_tables <- function(con = NULL, schema = NULL, db = NULL, user = NULL, ...) { connexion <- con attempt::stop_if_all(c(connexion, db, user), is.null, msg = "con, db et user ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") attempt::stop_if_all(c(connexion, db), is.null, msg = "con et db ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") @@ -26,7 +27,7 @@ list_tables <- function(con = NULL, schema = NULL, db = NULL, user = NULL) { con_a_creer_fermer <- FALSE # initialisation if(is.null(connexion)) { con_a_creer_fermer <- TRUE - connexion <- connect_to_db(db, user) + connexion <- connect_to_db(db, user, ...) } attempt::stop_if_not(schema, ~ .x %in% list_schemas(connexion), msg = glue::glue("{schema} n'existe pas. ")) diff --git a/R/post_data.R b/R/post_data.R index 3562b38a99d29f72d62db796dd72a5746bb4e199..80efc24b89323b380235c726f5ed02ae37a63454 100644 --- a/R/post_data.R +++ b/R/post_data.R @@ -10,8 +10,9 @@ #' @param overwrite boleen : TRUE si on veut ecraser le fichier deja present, FALSE par defaut. #' @param droits_schema boleen : TRUE (valeur par defaut) pour ajouter au niveau de la table versee les droits par defaut du schema. #' @param server l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron +#' @param ... éventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' @importFrom attempt stop_if stop_if_not warn_if_not -#' @importFrom DBI dbExistsTable dbExecute dbGetQuery dbWriteTable dbDisconnect +#' @importFrom DBI dbExistsTable dbExecute dbGetQuery dbWriteTable dbDisconnect Id #' @importFrom dplyr mutate across relocate #' @importFrom forcats fct_relabel #' @importFrom glue glue @@ -39,10 +40,11 @@ poster_data <- function(data = NULL, overwrite = FALSE, droits_schema = TRUE, user = "does", - server = NULL) { + server = NULL, + ...) { - # ouverture de la connexion avec DBI::dbDriver("PostgreSQL")---------------- - con <- connect_to_db(db = db, user = user, server = server) + # ouverture de la connexion avec DBI::dbDriver("PostgreSQL") ou ou `RPostgres::Postgres()` si `ecoSQL = TRUE`.----------- + con <- connect_to_db(db = db, user = user, server = server, ...) # verification de la validite des arguments attempt::stop_if(data, is.null, msg = "'data' n\'est pas renseign\u00e9") @@ -51,8 +53,8 @@ poster_data <- function(data = NULL, attempt::stop_if(schema, is.null, msg = "schema n\'est pas renseign\u00e9") attempt::stop_if(table, is.null, msg = "table n\'est pas renseign\u00e9") - rpostgis::dbSchema(conn = con, name = schema, display = FALSE, exec = TRUE) # creation du schema au besoin attempt::warn_if_not(schema, ~ .x %in% list_schemas(con), msg = glue::glue("le schema {schema} n\'existe pas. Il va \u00eatre cr\u00e9\u00e9 sous {db}.")) + rpostgis::dbSchema(conn = con, name = schema, display = FALSE, exec = TRUE) # creation du schema au besoin attempt::stop_if(table %in% list_tables(con = con, schema = schema, db = NULL, user = NULL) & !overwrite, msg = glue::glue("La table {table} existe d\u00e9j\u00e0 sur le schema {schema} et le param\u00e8tre overwrite est \u00e0 FALSE")) # passage des noms de champs en minuscule et standardisation---------------------- @@ -67,10 +69,15 @@ poster_data <- function(data = NULL, noms_pg = names(d) } + ## découverte du type de connexion + ecoSQL <- grepl("RPostgres", attributes(class(con))) + ## Creation de la table des definitions utiles pour le reimport dans R du jeu de donnee------------ + if(ecoSQL) nom_table = DBI::Id(schema = schema, table = "zz_r_df_def") else nom_table = c(schema, "zz_r_df_def") # Creation de la table (vide) et de sa structure dans le schema de destination - if (!DBI::dbExistsTable(conn = con, c(schema, "zz_r_df_def"), table.only = TRUE)) { + + if (!DBI::dbExistsTable(conn = con, name = nom_table, table.only = TRUE)) { sql_query <- paste0("CREATE TABLE ", schema, ".\"zz_r_df_def\" (table_nm character varying, df_def text[]);") DBI::dbExecute(conn = con, sql_query) suppressMessages({ @@ -145,7 +152,7 @@ poster_data <- function(data = NULL, # nom des variables de la cle primaire--------- if(is.null(pk)) { d <- dplyr::mutate(d, id_row__ = 1:nrow(d)) %>% - dplyr::relocate(.data$id_row__) + dplyr::relocate("id_row__") nom_var_cle = "id_row__" } else if(length(pk) == 1 & pk[1] == 1) { nom_var_cle = names(d)[1] @@ -155,11 +162,14 @@ poster_data <- function(data = NULL, } ## Ecriture de la table : un comportement different pour les donnees spatiales et les autres dataframes------ + # Designation de la table selon le driver de connexion + if(ecoSQL) nom_table = DBI::Id(schema = schema, table = table) else nom_table = c(schema, table) + if( any(grepl("sf", class(d))) ) { nom_col_geo <- attributes(d)$sf_column attempt::warn_if(nom_col_geo != names(d)[ncol(d)], msg = "La colonne geo n'est pas en fin de dataset, c'est une mauvaise pratique.") - sf::st_write(obj = d, dsn = con, delete_layer = overwrite, layer = c(schema = schema, table = table)) + sf::st_write(obj = d, dsn = con, delete_layer = overwrite, layer = nom_table) message(paste0('Table ', table,' ecrite sur le serveur avec sf::st_write(). ')) # Ajout contrainte forcage crs ouverture couche crs <- sf::st_crs(x = d, parameters = TRUE)$epsg @@ -183,7 +193,7 @@ poster_data <- function(data = NULL, mess <- "spatial " mess2 <- ifelse(index_spatial, paste0(" - index spatial declar\u00e9 sur '", nom_col_geo, "'"), "") } else { - DBI::dbWriteTable(con, name = c(schema, table), d, row.names = FALSE, overwrite = overwrite) + DBI::dbWriteTable(con, name = nom_table, d, row.names = FALSE, overwrite = overwrite) mess <- "" mess2 <- "" } @@ -198,7 +208,7 @@ poster_data <- function(data = NULL, }) # ajout des droits par defaut du schema a la table postee - + ## A faire ? DBI::dbDisconnect(con) @@ -218,7 +228,7 @@ poster_data <- function(data = NULL, # poster_data(data = ecln_cogifie, table = "test_ecln_cog", schema = "public", db = "public", server = "localhost", # pk = c("TypeZone", "CodeZone", "date"), post_row_name = FALSE, overwrite = TRUE, user = "does") # poster_data(data = iris, table = "test_iris", schema = "public", db = "public", server = "localhost", -# pk = NULL, post_row_name = TRUE, overwrite = TRUE, user = "does") + # pk = NULL, post_row_name = TRUE, overwrite = TRUE, user = "does") # poster_data(data = COGiter::departements_geo, table = "test_dep", schema = "public", db = "public", server = "localhost", # pk = "DEP", post_row_name = FALSE, overwrite = TRUE, user = "does") # poster_data(data = COGiter::epci %>% dplyr::select(-ends_with("DE_L_EPCI")) %>% dplyr::slice(1:270) %>% dplyr::mutate_if(is.factor, forcats::fct_drop), diff --git a/R/set_shema_rights.R b/R/set_shema_rights.R index c4b5e34f8bf0d6a6c5dbf6212d1c80a6a2cdaf62..fbb6abf2c1834b3f85c1f56dfc45829881edef6d 100644 --- a/R/set_shema_rights.R +++ b/R/set_shema_rights.R @@ -7,6 +7,7 @@ #' @param db si con est null, le nom de la base de donnees a laquelle se connecter #' @param user le nom de l'utilisateur qui se connecte #' @param server l'adresse ip du server auquel se connecter, laisser a NULL pour utiliser l'adresse IP definie dans le .Renviron. +#' @param ... eventuels autres arguments de la fonction d'ouverture de connexion `connect_to_db` #' #' @return NULL #' @export @@ -23,14 +24,14 @@ #' set_schema_rights(schema = "public", table = "opah_r52", db = "public", user = "does") #' } -set_schema_rights <- function(schema = "public", table = NULL, con = NULL, db = "public", user = "does", server = NULL) { +set_schema_rights <- function(schema = "public", table = NULL, con = NULL, db = "public", user = "does", server = NULL, ...) { connexion <- con attempt::stop_if_all(c(connexion, db, user), is.null, msg = "con, db et user ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") attempt::stop_if_all(c(connexion, db), is.null, msg = "con et db ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") attempt::stop_if_all(c(connexion, user), is.null, msg = "con et user ne sont pas renseign\u00e9s, merci de fournir les arguments necessaires a la connexion (soit con, soit db + user). ") attempt::stop_if(schema, is.null, msg = "schema n'est pas renseign\u00e9. ") - if(is.null(connexion)) { con <- connect_to_db(db = db, user = user, server = server) } + if(is.null(connexion)) { con <- connect_to_db(db = db, user = user, server = server, ...) } # recuperartion de la liste des privileges par defaut du schema query <- paste0("SELECT nspname::varchar AS nom_schema, defaclobjtype::varchar AS type_obj, defaclacl::varchar AS liste_priv FROM pg_default_acl a JOIN pg_namespace b ON a.defaclnamespace=b.oid WHERE nspname = '", schema,"' AND defaclobjtype = 'r';") diff --git a/man/commenter_champs.Rd b/man/commenter_champs.Rd index 6546b9e4d6c86975005d656762864812cf12ae8f..809f02f28c4d67939f53418bf41fa9147699537a 100644 --- a/man/commenter_champs.Rd +++ b/man/commenter_champs.Rd @@ -11,7 +11,8 @@ commenter_champs( schema = NULL, db = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -28,6 +29,8 @@ commenter_champs( \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \description{ commenter_champs : ajouter (ou remplacer) un commentaire de champ d'une table dans le SGBD diff --git a/man/commenter_schema.Rd b/man/commenter_schema.Rd index f2c14b81185c1b29688b20893aafea954d98ab4c..aa56e42af3ae2c0ead4d9a955d182099e6048c4f 100644 --- a/man/commenter_schema.Rd +++ b/man/commenter_schema.Rd @@ -4,7 +4,13 @@ \alias{commenter_schema} \title{commenter_schema : ajouter (ou remplacer) un commentaire pour un schema du SGBD} \usage{ -commenter_schema(comment = NULL, schema = NULL, db = "public", user = "does") +commenter_schema( + comment = NULL, + schema = NULL, + db = "public", + user = "does", + ... +) } \arguments{ \item{comment}{: le texte du commentaire a poster} @@ -14,6 +20,8 @@ commenter_schema(comment = NULL, schema = NULL, db = "public", user = "does") \item{db}{: le nom de la base qui contient le schema a commenter} \item{user}{: l'identifiant de l'utilisateur SGBD qui se connecte} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \description{ commenter_schema : ajouter (ou remplacer) un commentaire pour un schema du SGBD diff --git a/man/commenter_table.Rd b/man/commenter_table.Rd index adcac988c512c66f848fd1795d8ea521c854a1ad..8e30d6ec719f71857391f7d1ad62a94da64edc9a 100644 --- a/man/commenter_table.Rd +++ b/man/commenter_table.Rd @@ -9,7 +9,8 @@ commenter_table( table = NULL, schema = NULL, db = "public", - user = "does" + user = "does", + ... ) } \arguments{ @@ -22,6 +23,8 @@ commenter_table( \item{db}{: Le nom de la base qui contient la table a commenter.} \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \description{ commenter_table : ajouter (ou remplacer) un commentaire de table dans le SGBD diff --git a/man/connect_to_db.Rd b/man/connect_to_db.Rd index e4933e6b9556f0e833b0430385ca8d883e96e8d1..0d781123910aee8b47d9e409215134fe5619e995 100644 --- a/man/connect_to_db.Rd +++ b/man/connect_to_db.Rd @@ -9,7 +9,9 @@ connect_to_db( user = "does", user_id = paste0("user_", user), user_pwd = paste0("pwd_", user), - server = NULL + server = NULL, + ecoSQL = TRUE, + ... ) } \arguments{ @@ -22,9 +24,13 @@ connect_to_db( \item{user_pwd}{le mot de passe avec lequel se connecter tel que renseigné dans votre renviron} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron} + +\item{ecoSQL}{mettre à TRUE pour switcher vers un driver adapté à l'usage de l'offre d'hébergement de base EcoSQL (Experimental)} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ -La fonction cree un connecteur pour se connecter à la base posgresql du serveur via le driver DBI "PostgreSQL". +La fonction cree un connecteur pour se connecter à la base posgresql du serveur via le driver DBI "PostgreSQL" ou \code{RPostgres::Postgres()} si \code{ecoSQL = TRUE}. } \description{ Connexion au serveur datamart diff --git a/man/exporter_table_comments.Rd b/man/exporter_table_comments.Rd index 7a83e555fc8858fcd4a2ca0ffa3d3b47221857a2..5717810b57ab4f55f72569e3692c475c3f3566ee 100644 --- a/man/exporter_table_comments.Rd +++ b/man/exporter_table_comments.Rd @@ -11,7 +11,8 @@ exporter_table_comments( user = "does", server = NULL, fichier = "dico_var.csv", - import = FALSE + import = FALSE, + ... ) } \arguments{ @@ -28,6 +29,8 @@ exporter_table_comments( \item{fichier}{L'adresse et le nom du fichier csv a creer, contenant le dictionnaire d'attributs et le commentaire de la tables a exporter.} \item{import}{booleen, TRUE si on souhaite egalement charger la table dans l'environnement R (FALSE par defaut).} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ les commentaires recherches dans un dataframe de 4 champs (nom_schema, nom_table, commentaire) et autant de lignes que de champs de la table commentes + 1 ligne pour le commentaire de table. diff --git a/man/get_cols_comment.Rd b/man/get_cols_comment.Rd index f3a570f64f34267de521ffa6c129d6f112527e3e..a185f5020dcca5cf87366bb14036c6ba8aa0e54c 100644 --- a/man/get_cols_comment.Rd +++ b/man/get_cols_comment.Rd @@ -9,7 +9,8 @@ get_cols_comment( schema = NULL, db = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -22,6 +23,8 @@ get_cols_comment( \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ les commentaires recherches dans un dataframe de 4 champs (nom_schema, nom_table, nom_col, commentaire) et autant de lignes que de champs de la table commentes diff --git a/man/get_db_comment.Rd b/man/get_db_comment.Rd index 04af1f1851cc7954f7bcc71e6ae9d6ef11ece221..a6951f69f8493e8558dfaa77c4f372da223f4102 100644 --- a/man/get_db_comment.Rd +++ b/man/get_db_comment.Rd @@ -4,7 +4,7 @@ \alias{get_db_comment} \title{get_db_comment : Récupérer les commentaires d'une base de données sur le SGBD} \usage{ -get_db_comment(db = "public", user = "does", server = NULL) +get_db_comment(db = "public", user = "does", server = NULL, ...) } \arguments{ \item{db}{: base de données dont on recherche le descriptif.} @@ -12,6 +12,8 @@ get_db_comment(db = "public", user = "does", server = NULL) \item{user}{: l'identifiant de l'utilisateur SGBD qui se connecte} \item{server}{: l'adresse IP du serveur, laisser à NULL pour utiliser la variable d'environnement du .Renviron} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ le commentaire de la bases de données dans un dataframe avec les champs (nom_base, commentaire) diff --git a/man/get_schema_comment.Rd b/man/get_schema_comment.Rd index 971d60be8c217ff8b4f476930954714891c9244a..f68188e2fc718b24709972ba26d61d9918ddf030 100644 --- a/man/get_schema_comment.Rd +++ b/man/get_schema_comment.Rd @@ -4,7 +4,13 @@ \alias{get_schema_comment} \title{get_schema_comment : Recuperer les commentaires d'un schema sur le SGBD} \usage{ -get_schema_comment(schema = NULL, db = "public", user = "does", server = NULL) +get_schema_comment( + schema = NULL, + db = "public", + user = "does", + server = NULL, + ... +) } \arguments{ \item{schema}{: Le nom du schema sur le SGBD dont on veut recuperer la description} @@ -14,6 +20,8 @@ get_schema_comment(schema = NULL, db = "public", user = "does", server = NULL) \item{user}{: l'identifiant de l'utilisateur SGBD qui se connecte} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ le commentaire recherche dans un dataframe de 3 champs (base, nom_schema, commentaire) diff --git a/man/get_table_comment.Rd b/man/get_table_comment.Rd index 900c65dc0164e4abf54ee888a94fb7300d56001c..299a8783875498697a65f70bfc92975e0c13e32b 100644 --- a/man/get_table_comment.Rd +++ b/man/get_table_comment.Rd @@ -9,7 +9,8 @@ get_table_comment( schema = NULL, db = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -22,6 +23,8 @@ get_table_comment( \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ le commentaire recherche dans un dataframe de 3 champs (nom_schema, nom_table, commentaire) et une ligne diff --git a/man/get_table_comments.Rd b/man/get_table_comments.Rd index c9705d21e9a1245594488871fef8b5d6d75dfa82..0fd6d7617177dc9da04fc43c780cac47e7a4d0ca 100644 --- a/man/get_table_comments.Rd +++ b/man/get_table_comments.Rd @@ -9,7 +9,8 @@ get_table_comments( schema = NULL, db = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -22,6 +23,8 @@ get_table_comments( \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} \item{server}{L'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ les commentaires recherches dans un dataframe de 4 champs (nom_schema, nom_table, commentaire) et autant de lignes que de champs de la table commentes + 1 ligne pour la table diff --git a/man/importer_data.Rd b/man/importer_data.Rd index 00867d18921500167f8f86520cb809c8c3f2b2f2..323a650d40e84953ebbbb60dce94d8240b9f9705 100644 --- a/man/importer_data.Rd +++ b/man/importer_data.Rd @@ -13,7 +13,8 @@ importer_data( db = "public", server = NULL, user = "does", - limit = 0 + limit = 0, + ... ) } \arguments{ @@ -28,6 +29,8 @@ importer_data( \item{user}{L'identifiant de l'utilisateur qui se connecte.} \item{limit}{Le nombre d'enregistrements a rapatrier, 0 pour lire toute la table.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ la table de donnees, au format dataframe ou sf dataframe si une colonne de type 'USER-DEFINED' est presente dans la table sgbd diff --git a/man/list_tables.Rd b/man/list_tables.Rd index 41f9c42af960aa5c49f98dc1e27a4ab07b73df74..6e9ba244fca7324dd7377d46c55f19f965546232 100644 --- a/man/list_tables.Rd +++ b/man/list_tables.Rd @@ -4,7 +4,7 @@ \alias{list_tables} \title{Lister les tables sur un schéma d'un connecteur.} \usage{ -list_tables(con = NULL, schema = NULL, db = NULL, user = NULL) +list_tables(con = NULL, schema = NULL, db = NULL, user = NULL, ...) } \arguments{ \item{con}{Le connecteur de classe PosgreSQLConnection, peut etre NULL si db et user sont tous deux renseignes, sera utilise par defaut si les 3 arguments renseigne.} @@ -14,6 +14,8 @@ list_tables(con = NULL, schema = NULL, db = NULL, user = NULL) \item{db}{Le nom de la base de donnees a laquelle se connecter pour trouver le schema, si con n'est pas renseigne.} \item{user}{Le nom de l'utilisateur de la connexion au serveur de donnees, si con n'est pas renseigne.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ Un vecteur de caractères avec les tables présentes sur le schéma schema du connecteur con. diff --git a/man/post_dico_attr.Rd b/man/post_dico_attr.Rd index 2fab65f4fb8f628130ef9c7d9a6384e2cbb24e41..dabed6466af74739dd31eb7391827b377bcbcf41 100644 --- a/man/post_dico_attr.Rd +++ b/man/post_dico_attr.Rd @@ -10,7 +10,8 @@ post_dico_attr( schema = NULL, db = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -25,13 +26,15 @@ post_dico_attr( \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \description{ Postage de commentaires sur tous ou certains champs d'une table SGBD a partir d'un dataframe dictionnaire d'attributs } \examples{ \dontrun{ -dico_iris <- data.frame(VAR = names(iris), VAR_LIB = paste("libell\u00e9 de", names(iris))) +dico_iris <- data.frame(VAR = names(iris), VAR_LIB = paste("libell\u00e9 de", names(iris), " cc")) post_dico_attr(dico = dico_iris, table = "test_iris", schema = "public", db = "public", user = "does", server = "localhost") } diff --git a/man/poster_data.Rd b/man/poster_data.Rd index dffa050d9aac49471ecf27b056af8e1744c4250a..e2aa254398c80b0d16fc77ad5225500121387305 100644 --- a/man/poster_data.Rd +++ b/man/poster_data.Rd @@ -17,7 +17,8 @@ poster_data( overwrite = FALSE, droits_schema = TRUE, user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -40,6 +41,8 @@ poster_data( \item{user}{Le nom d'utilisateur pour se connecter au SGBD.} \item{server}{l'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron} + +\item{...}{éventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \value{ NULL, la fonction verse le dataset de l'environnement R sur le serveur de donnees. diff --git a/man/set_schema_rights.Rd b/man/set_schema_rights.Rd index f42f7b689d2744d49842794258285e72380986a4..34b7d793374c3506cd2a9a5bccbe3de44cc34be3 100644 --- a/man/set_schema_rights.Rd +++ b/man/set_schema_rights.Rd @@ -10,7 +10,8 @@ set_schema_rights( con = NULL, db = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -25,6 +26,8 @@ set_schema_rights( \item{user}{le nom de l'utilisateur qui se connecte} \item{server}{l'adresse ip du server auquel se connecter, laisser a NULL pour utiliser l'adresse IP definie dans le .Renviron.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \description{ set_schema_rights() permet d'actualiser les privileges d'une ou de toutes les tables d'un schema a partir des privileges definis au niveau du schema diff --git a/man/transferer_table_comments.Rd b/man/transferer_table_comments.Rd index b4f521eaba6bc8d6086a720c4835870dbec64cf7..a4398c672fabacd4c2b9dbca388fb34e7dfc4fd8 100644 --- a/man/transferer_table_comments.Rd +++ b/man/transferer_table_comments.Rd @@ -12,7 +12,8 @@ transferer_table_comments( schema_dest = NULL, db_dest = "public", user = "does", - server = NULL + server = NULL, + ... ) } \arguments{ @@ -31,6 +32,8 @@ transferer_table_comments( \item{user}{: L'identifiant de l'utilisateur SGBD qui se connecte.} \item{server}{L'adresse ip du serveur, laisser à NULL pour utiliser le variable d'environnement du .Renviron.} + +\item{...}{eventuels autres arguments de la fonction d'ouverture de connexion \code{connect_to_db}} } \description{ transferer les commentaires d'une table et de ses champs à une autre table identique sur le SGBD