Skip to content
Snippets Groups Projects
Commit b2c6b1b7 authored by Juliette Engelaere-Lefebvre's avatar Juliette Engelaere-Lefebvre
Browse files

Ajout d'un parametre `ecoSQL` à la fonction connect_to_db pour switcher vers...

Ajout d'un parametre `ecoSQL` à la fonction connect_to_db pour switcher vers un driver adapté à l'offre SGBD ecoSQL

relates #18
parent 77b33a60
No related branches found
No related tags found
2 merge requests!10Ajout d'un parametre `ecoSQL` à la fonction connect_to_db pour switcher vers...,!9Draft: Resolve "Adapder les drivers de poster_data et importer_data à ecoSQL"
Pipeline #379057 passed
Showing with 129 additions and 59 deletions
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)
......
# 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
......
......@@ -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. ")
......
......@@ -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)}
......
......@@ -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. ")
......
......@@ -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)
}
......
......@@ -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)
......
......@@ -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. "))
......
......@@ -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")
......
......@@ -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';")
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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.
......
......@@ -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
......
......@@ -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)
......
......@@ -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)
......
......@@ -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
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment