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..1095e8bc0b0ceba5ba69418459377e1d1bdec946 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,6 @@ +# datalibaba 0.0.0.9008 +- Ajout d'un paramètre `ecoSQL` à la fonction `connect_to_db` pour switcher de driver (passage du `DBI::dbDriver("PostgreSQL")` _par défaut 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..95396a3ac508687790fb5462d1cecd4a60cffcd3 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 `DBI::dbDriver("PostgreSQL")` 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 `DBI::dbDriver("PostgreSQL")` 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..8ae4d8c9403c5d14ced3a93de88c6ca73c13082f 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 `DBI::dbDriver("PostgreSQL")` 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 @@ -77,10 +80,10 @@ commenter_champs <- function(comment = NULL, var = NULL, table = NULL, schema = #' } #' -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 `DBI::dbDriver("PostgreSQL")` 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 `DBI::dbDriver("PostgreSQL")` 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 `DBI::dbDriver("PostgreSQL")` 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 `DBI::dbDriver("PostgreSQL")` 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,10 +262,10 @@ 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 `DBI::dbDriver("PostgreSQL")` 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) @@ -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..1512d90e72d3e4905e2a06b84eb9d067a41b16be 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 `DBI::dbDriver("PostgreSQL")` 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..7398544fcbda3041b648cd8fcddef84bb1a29f67 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 = FALSE, + ...){ - 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..e3a8190aac0d0803abab7807a50844755b0a8080 100644 --- a/R/get_data.R +++ b/R/get_data.R @@ -6,6 +6,7 @@ #' @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 @@ -25,14 +26,14 @@ #' @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) + con <- connect_to_db(db = db, user = user, server = server, ...) name <- c(schema, table) query_sql_limit <- paste0("SELECT * FROM ", schema, ".", table, " LIMIT ", 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..a461abace0205a1f19f0784bf3aee1c308cb762b 100644 --- a/R/post_data.R +++ b/R/post_data.R @@ -10,6 +10,7 @@ #' @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 dplyr mutate across relocate @@ -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 `DBI::dbDriver("PostgreSQL")` 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") 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..5b0d13accddf7dca437afb85963baca30b3e1c23 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 = FALSE, + ... ) } \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..36ae934b4a5e63150fece57d603f905715df539d 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,6 +26,8 @@ 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 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