Skip to content
Snippets Groups Projects
Commit 2fd44144 authored by ronan.vignard's avatar ronan.vignard
Browse files

Ajout du paramètre host et modification de l'exemple

parent 870c41fa
No related branches found
No related tags found
1 merge request!55Création des tests pour import_shapefile()
#' Modifie le type d'une colonne dans une table PostgreSQL #' Modifie le type d'une colonne dans une table PostgreSQL
#' #'
#' @description Cette fonction permet de modifier le type d'une colonne dans #' @description Cette fonction permet de modifier le type d'une colonne dans
#' une table PostgreSQL en utilisant une connexion valide à la base de données. #' une table PostgreSQL en utilisant une connexion valide à la base de données.
#' Le rôle doit être propriétaire de la table. #' Le rôle doit être propriétaire de la table.
#' #'
#' @param host Hôte de la base de données PostgreSQL.
#' @param database Nom de la base de données. #' @param database Nom de la base de données.
#' @param schema Le schéma de la table où la colonne doit être modifiée. #' @param schema Le schéma de la table où la colonne doit être modifiée.
#' @param table Le nom de la table où la colonne doit être modifiée. #' @param table Le nom de la table où la colonne doit être modifiée.
...@@ -15,34 +16,41 @@ ...@@ -15,34 +16,41 @@
#' @return Retourne TRUE si la modification a été effectuée avec succès. #' @return Retourne TRUE si la modification a été effectuée avec succès.
#' #'
#' @importFrom datalibaba connect_to_db #' @importFrom datalibaba connect_to_db
#' @importFrom RPostgreSQL dbConnect dbDisconnect #' @importFrom RPostgreSQL dbConnect dbDisconnect
#' @importFrom DBI dbExecute #' @importFrom DBI dbExecute
#' #'
#' @export #' @export
#' @examples #' @examples
#' \dontrun{ #' \dontrun{
#' # Créer une table dummy dans le schéma collectr de la base production
#' create_dummy(host = "localhost",
#' database = "collectr",
#' schema = "public",
#' table = "dummy",
#' role = "runner")
#' # Utilisation de la fonction modify_column_type() #' # Utilisation de la fonction modify_column_type()
#' modify_column_type(database = "si_eau", #' modify_column_type(database = "collectr",
#' schema = "nitrates", #' schema = "public",
#' table = "nitrate_data_analyse_ars_2022", #' table = "dummy",
#' column_name = "plv_date ", #' column_name = "birthdate",
#' column_type = "date", #' column_type = "date",
#' role = "admin") #' role = "runner")
#' } #' }
modify_column_type <- function(database, schema, table, column_name, modify_column_type <- function(host, database, schema, table, column_name,
column_type, role) { column_type, role) {
# Se connecter à la base de données PostgreSQL # Se connecter à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, connexion <- datalibaba::connect_to_db(server = host,
user = role, db = database,
user = role,
ecoSQL = FALSE) ecoSQL = FALSE)
# Vérifier si la connexion est une connexion PostgreSQL valide # Vérifier si la connexion est une connexion PostgreSQL valide
if (!inherits(connexion, "PostgreSQLConnection")) { if (!inherits(connexion, "PostgreSQLConnection")) {
stop("La connexion fournie n\'est pas une connexion PostgreSQL valide.") stop("La connexion fournie n\'est pas une connexion PostgreSQL valide.")
} }
# Vérifier si la table existe dans le schéma # Vérifier si la table existe dans le schéma
if (!table_exists(database = database, schema = schema, table = table, role = role)) { if (!table_exists(host = host, database = database, schema = schema, table = table, role = role)) {
stop("La table sp\u00e9cifi\u00e9e n\'existe pas dans la base de donn\u00e9es.") stop("La table sp\u00e9cifi\u00e9e n\'existe pas dans la base de donn\u00e9es.")
} }
...@@ -51,12 +59,12 @@ modify_column_type <- function(database, schema, table, column_name, ...@@ -51,12 +59,12 @@ modify_column_type <- function(database, schema, table, column_name,
" ALTER COLUMN ", column_name, " ALTER COLUMN ", column_name,
" TYPE ", column_type, " TYPE ", column_type,
" USING ", column_name, "::", column_type) " USING ", column_name, "::", column_type)
# Exécuter la requête ALTER TABLE # Exécuter la requête ALTER TABLE
dbExecute(connexion, alter_query) dbExecute(connexion, alter_query)
# Fermer la connexion à la base de données # Fermer la connexion à la base de données
dbDisconnect(connexion) dbDisconnect(connexion)
return(TRUE) return(TRUE)
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment