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

Intégration de la connexion dans les fonctions

parent ed07bd4a
No related branches found
No related tags found
3 merge requests!24Passage en version 1.2.0,!23Correctifs + documentation,!22Intégration des paramètres version, last_year et filepath_data_ars
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand
#' Créer une table d'analyses de nitrates
#'
#' @description Cette fonction crée une table dans une base de données PostgreSQL
#' pour stocker les informations relatives aux analyses de nitrates, incluant
#' les contraintes et les séquences nécessaires.
#'
#' @param version String. Version de la table (par exemple, 'v1').
#' @param last_year Integer. L'année la plus récente incluse dans les données de la table.
#'
#' @return String. Le script SQL utilisé pour créer la table.
#' @export
#' @importFrom datalibaba connect_to_db
create_nitrate_analyse_table <- function(version, last_year) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")
# Création du script avec l'ajout des paramètres
sql_script <- glue::glue("
CREATE TABLE IF NOT EXISTS nitrates.nitrate_analyse_{version}
(
code_analyse serial NOT NULL,
code_intervenant character varying(20),
code_prelevement integer,
code_parametre bigint,
code_fraction_analysee integer,
date_analyse date,
resultat_analyse double precision,
code_remarque integer,
limite_detection double precision,
limite_quantification double precision,
CONSTRAINT pk_nitrate_analyse_{version} PRIMARY KEY (code_analyse),
CONSTRAINT fk_n_fraction_analysee FOREIGN KEY (code_fraction_analysee)
REFERENCES sandre.n_fraction_analysee (code_fraction_analysee) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET DEFAULT,
-- CONSTRAINT fk_n_intervenant FOREIGN KEY (code_intervenant)
-- REFERENCES qualite_cours_d_eau.n_intervenant (code_intervenant) MATCH SIMPLE
-- ON UPDATE CASCADE ON DELETE SET DEFAULT,
CONSTRAINT fk_n_remarque FOREIGN KEY (code_remarque)
REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_parametre FOREIGN KEY (code_parametre)
REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET DEFAULT
)
WITH (
OIDS=FALSE
);
ALTER TABLE nitrates.nitrate_analyse_{version}
OWNER TO adminpsql;
GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO adminpsql;
GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO writer_production;
GRANT SELECT ON TABLE nitrates.nitrate_analyse_{version} TO reader_production;
COMMENT ON TABLE nitrates.nitrate_analyse_{version}
IS 'Table des analyses 2007-{last_year} (version {version} du {date_now})';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_analyse IS 'Identifiant de l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_intervenant IS 'Identifiant du laboratoire ayant effectu\u00e9 l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_prelevement IS 'Identifiant du pr\u00e9l\u00e8vement';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_parametre IS 'Identifiant du param\u00e8tre analys\u00e9';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analys\u00e9e';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.date_analyse IS 'Date de l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.resultat_analyse IS 'R\u00e9sultat de l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_remarque IS 'Code validant la donn\u00e9e';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_detection IS 'Limite de d\u00e9tection';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_quantification IS 'Limite de quantification';
CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 2147483647
CACHE 1;
ALTER SEQUENCE nitrates.nitrate_analyse_{version}_code_analyse_seq
OWNER TO adminpsql;
")
# Exécution du script dans la base de données
DBI::dbExecute(connexion, sql_script)
# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)
return(sql_script)
}
# WARNING - Generated by {fusen} from dev/flat_create_tables.Rmd: do not edit by hand
#' Créer une table d'analyses de nitrates
#'
#' @description Cette fonction crée une table dans une base de données PostgreSQL
#' pour stocker les informations relatives aux analyses de nitrates, incluant
#' les contraintes et les séquences nécessaires.
#'
#' @param version String. Version de la table (par exemple, 'v1').
#' @param last_year Integer. L'année la plus récente incluse dans les données de la table.
#' @param connexion DBIConnection. Connexion active à la base de données PostgreSQL.
#'
#' @return String. Le script SQL utilisé pour créer la table.
#' @export
#' @importFrom datalibaba connect_to_db
#' @examples
#' # Connexion à la base de données
#' connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
#'
#' # Création du script SQL avec la version choisie
#' version <- "v0_16"
#' last_year <- "2023"
#' sql <- create_nitrate_analyse_table(version, last_year, connexion)
create_nitrate_analyse_table <- function(version, last_year, connexion) {
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")
# Création du script avec l'ajout des paramètres
sql_script <- glue::glue("
CREATE TABLE IF NOT EXISTS nitrates.nitrate_analyse_{version}
(
code_analyse serial NOT NULL,
code_intervenant character varying(20),
code_prelevement integer,
code_parametre bigint,
code_fraction_analysee integer,
date_analyse date,
resultat_analyse double precision,
code_remarque integer,
limite_detection double precision,
limite_quantification double precision,
CONSTRAINT pk_nitrate_analyse_{version} PRIMARY KEY (code_analyse),
CONSTRAINT fk_n_fraction_analysee FOREIGN KEY (code_fraction_analysee)
REFERENCES sandre.n_fraction_analysee (code_fraction_analysee) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET DEFAULT,
-- CONSTRAINT fk_n_intervenant FOREIGN KEY (code_intervenant)
-- REFERENCES qualite_cours_d_eau.n_intervenant (code_intervenant) MATCH SIMPLE
-- ON UPDATE CASCADE ON DELETE SET DEFAULT,
CONSTRAINT fk_n_remarque FOREIGN KEY (code_remarque)
REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_parametre FOREIGN KEY (code_parametre)
REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET DEFAULT
)
WITH (
OIDS=FALSE
);
ALTER TABLE nitrates.nitrate_analyse_{version}
OWNER TO adminpsql;
GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO adminpsql;
GRANT ALL ON TABLE nitrates.nitrate_analyse_{version} TO writer_production;
GRANT SELECT ON TABLE nitrates.nitrate_analyse_{version} TO reader_production;
COMMENT ON TABLE nitrates.nitrate_analyse_{version}
IS 'Table des analyses 2007-{last_year} (version {version} du {date_now})';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_analyse IS 'Identifiant de l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_intervenant IS 'Identifiant du laboratoire ayant effectu\u00e9 l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_prelevement IS 'Identifiant du pr\u00e9l\u00e8vement';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_parametre IS 'Identifiant du param\u00e8tre analys\u00e9';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analys\u00e9e';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.date_analyse IS 'Date de l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.resultat_analyse IS 'R\u00e9sultat de l''analyse';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.code_remarque IS 'Code validant la donn\u00e9e';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_detection IS 'Limite de d\u00e9tection';
COMMENT ON COLUMN nitrates.nitrate_analyse_{version}.limite_quantification IS 'Limite de quantification';
CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 2147483647
CACHE 1;
ALTER SEQUENCE nitrates.nitrate_analyse_{version}_code_analyse_seq
OWNER TO adminpsql;
")
# Exécution du script dans la base de données
DBI::dbExecute(connexion, sql_script)
# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)
return(sql_script)
}
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand
#' Créer une table de prélèvements de nitrates
#'
......@@ -107,20 +8,13 @@ create_nitrate_analyse_table <- function(version, last_year, connexion) {
#'
#' @param version String. Version de la table (par exemple, 'v1').
#' @param last_year Integer. L'année la plus récente incluse dans les données de la table.
#' @param connexion DBIConnection. Connexion active à la base de données PostgreSQL.
#'
#' @return String. Le script SQL utilisé pour créer la table.
#' @export
#' @importFrom datalibaba connect_to_db
#' @examples
#' # Connexion à la base de données
#' connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
#'
#' # Création du script SQL avec la version choisie
#' version <- "v0_16"
#' last_year <- "2023"
#' sql <- create_nitrate_prelevement_table(version, last_year, connexion)
create_nitrate_prelevement_table <- function(version, last_year, connexion) {
create_nitrate_prelevement_table <- function(version, last_year) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")
......
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