Skip to content
Snippets Groups Projects
Commit 8608ef23 authored by SMAH Lisa's avatar SMAH Lisa Committed by Juliette Engelaere-Lefebvre
Browse files

#28 création d'une fonction qui récupère les commentaires d'une base de données sur le SGBD

parent bec857c7
Branches
No related tags found
1 merge request!6#28 création d'une fonction qui récupère les commentaires d'une base de données sur le SGBD
Package: datalibaba
Title: Interface De Connexion a Une Base Posgres Postgis
Version: 0.0.0.9005
Version: 0.0.0.9006
Authors@R:
c(person(given = "Maël",
family = "Theulière",
......
......@@ -11,6 +11,8 @@ export(exporter_table_comments)
export(get_cols_comment)
export(get_data)
export(get_data_dbi)
export(get_db_comment)
export(get_schema_comment)
export(get_table_comment)
export(get_table_comments)
export(importer_data)
......
# datalibaba 0.0.0.9006
- Ajout de la fonction `get_db_comment()` pour récupérer le descriptif d'une base
# datalibaba 0.0.0.9005
- Ajout de la fonction `get_schema_comment()` pour récupérer le descriptif d'un schéma
......
#' get_db_comment : Récupérer les commentaires d'une base de données sur le SGBD
#'
#' @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
#' @return le commentaire de la bases de données dans un dataframe avec les champs (nom_base, commentaire)
#'
#' @export
#' @importFrom attempt stop_if_not stop_if
#' @importFrom DBI dbGetQuery
#' @importFrom dplyr transmute
#' @importFrom rlang .data
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)
# 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();"
# Récupération du commentaire
com <- DBI::dbGetQuery(conn = con, statement = query) %>%
dplyr::transmute(nom_base = .data$nom_base, commentaire = .data$commentaire)
# Déconnexion de la base de données
DBI::dbDisconnect(con)
rm(con)
return(com)
}
#' commenter_schema : ajouter (ou remplacer) un commentaire pour un schema du SGBD
#'
#' @param comment : le texte du commentaire a poster
#' @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
#' @importFrom attempt stop_if
#' @importFrom DBI dbDisconnect
#' @importFrom rpostgis dbComment
#' @return NULL
#' @export
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)
# verification de la validite des arguments
attempt::stop_if(comment, is.null, msg = "L'argument comment n\'est pas renseign\u00e9. ")
attempt::stop_if(schema, is.null, msg = "L'argument schema n\'est pas renseign\u00e9. ")
comment2 <- enc2utf8(comment)
rpostgis::dbComment(conn = con, name = schema, comment = comment2, type = "schema", exec = TRUE)
DBI::dbDisconnect(con)
return(invisible(NULL))
}
#' get_schema_comment : Recuperer les commentaires d'un schema sur le SGBD
#'
#' @param schema : Le nom du schema sur le SGBD dont on veut recuperer la description
#' @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
#' @return le commentaire recherche dans un dataframe de 3 champs (base, nom_schema, commentaire)
#'
#' @export
#' @importFrom attempt stop_if_not stop_if
#' @importFrom DBI dbGetQuery
#' @importFrom dplyr transmute
#' @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)
# verification de la validite des arguments
attempt::stop_if(schema, is.null, msg = "L\'argument schema n\'est pas renseign\u00e9. ")
attempt::stop_if_not(schema %in% list_schemas(con), msg = glue::glue("Il n\'y a pas de schema {schema} dans la base de donn\u00e9es. "))
# construction de la requete sql
query <- paste0("SELECT obj_description('", schema, "'::regnamespace) AS commentaire;")
# recupération du commentaire du schema
com <- DBI::dbGetQuery(conn = con, statement = query ) %>%
dplyr::transmute(nom_schema = schema, commentaire = .data$commentaire)
DBI::dbDisconnect(con)
rm(con)
return(com)
}
......@@ -44,67 +44,4 @@ commenter_table <- function(comment = NULL, table = NULL, schema = NULL, db = "
#' commenter_schema : ajouter (ou remplacer) un commentaire pour un schema du SGBD
#'
#' @param comment : le texte du commentaire a poster
#' @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
#' @importFrom attempt stop_if
#' @importFrom DBI dbDisconnect
#' @importFrom rpostgis dbComment
#' @return NULL
#' @export
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)
# verification de la validite des arguments
attempt::stop_if(comment, is.null, msg = "L'argument comment n\'est pas renseign\u00e9. ")
attempt::stop_if(schema, is.null, msg = "L'argument schema n\'est pas renseign\u00e9. ")
comment2 <- enc2utf8(comment)
rpostgis::dbComment(conn = con, name = schema, comment = comment2, type = "schema", exec = TRUE)
DBI::dbDisconnect(con)
return(invisible(NULL))
}
#' get_schema_comment : Recuperer les commentaires d'un schema sur le SGBD
#'
#' @param schema : Le nom du schema sur le SGBD dont on veut recuperer la description
#' @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
#' @return le commentaire recherche dans un dataframe de 3 champs (base, nom_schema, commentaire)
#'
#' @export
#' @importFrom attempt stop_if_not stop_if
#' @importFrom DBI dbGetQuery
#' @importFrom dplyr transmute
#' @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)
# verification de la validite des arguments
attempt::stop_if(schema, is.null, msg = "L\'argument schema n\'est pas renseign\u00e9. ")
attempt::stop_if_not(schema %in% list_schemas(con), msg = glue::glue("Il n\'y a pas de schema {schema} dans la base de donn\u00e9es. "))
# construction de la requete sql
query <- paste0("SELECT obj_description('", schema, "'::regnamespace) AS commentaire;")
# recupération du commentaire du schema
com <- DBI::dbGetQuery(conn = con, statement = query ) %>%
dplyr::transmute(nom_schema = schema, commentaire = .data$commentaire)
DBI::dbDisconnect(con)
rm(con)
return(com)
}
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/commenter_table.R
% Please edit documentation in R/comment_db.R
\name{commenter_schema}
\alias{commenter_schema}
\title{commenter_schema : ajouter (ou remplacer) un commentaire pour un schema du SGBD}
......
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/comment_db.R
\name{get_db_comment}
\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)
}
\arguments{
\item{db}{: base de données dont on recherche le descriptif.}
\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}
}
\value{
le commentaire de la bases de données dans un dataframe avec les champs (nom_base, commentaire)
}
\description{
get_db_comment : Récupérer les commentaires d'une base de données sur le SGBD
}
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/comment_db.R
\name{get_schema_comment}
\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)
}
\arguments{
\item{schema}{: Le nom du schema sur le SGBD dont on veut recuperer la description}
\item{db}{: Le nom de la base qui contient le schema dont on recherche le descriptif.}
\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}
}
\value{
le commentaire recherche dans un dataframe de 3 champs (base, nom_schema, commentaire)
}
\description{
get_schema_comment : Recuperer les commentaires d'un schema sur le SGBD
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment