Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • dreal-pdl/csd/eau-milieux-aquatiques/data.nitrates
1 result
Show changes
Showing
with 455 additions and 22 deletions
......@@ -19,7 +19,7 @@ VignetteBuilder:
knitr
Remotes:
git::https://gitlab-forge.din.developpement-durable.gouv.fr/dreal-pdl/csd/datalibaba.git
Config/fusen/version: 0.6.0
Config/fusen/version: 0.7.0
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.1
RoxygenNote: 7.3.2
......@@ -2,8 +2,10 @@
export(add_code_analyse)
export(add_code_prelevement)
export(add_code_prelevement_analyse)
export(create_nitrate_analyse_table)
export(create_nitrate_prelevement_table)
export(create_table_nitrate_prelevement_analyse)
importFrom(DBI,dbDisconnect)
importFrom(DBI,dbGetQuery)
importFrom(datalibaba,connect_to_db)
......
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter.
#' Ajouter une variable code_analyse au dataframe
#'
......@@ -36,6 +36,13 @@ add_code_analyse <- function(dataframe, version) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Créer la séquence correspondant à la table
create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;")
# Exécuter le script dans la base de données
DBI::dbExecute(connexion, create_sequence)
# Construire le nom de la séquence
sequence_name <- glue::glue("nitrates.nitrate_analyse_{version}_code_analyse_seq")
......
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter.
#' Ajouter une variable code_prelevement au dataframe
#'
......@@ -36,6 +36,13 @@ add_code_prelevement <- function(dataframe, version) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Créer la séquence correspondant à la table
create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_{version}_code_prelevement_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;")
# Exécuter le script dans la base de données
DBI::dbExecute(connexion, create_sequence)
# Construire le nom de la séquence
sequence_name <- glue::glue("nitrates.nitrate_prelevement_{version}_code_prelevement_seq")
......
# WARNING - Generated by {fusen} from dev/flat_create_table_sequence.Rmd: do not edit by hand # nolint: line_length_linter.
#' Ajouter une variable code_prelevement_analyse au dataframe
#'
#' @description Cette fonction ajoute une nouvelle variable
#' `code_prelevement_analyse` au dataframe en utilisant une séquence
#' PostgreSQL dynamique. La séquence est construite en fonction du
#' paramètre `version` fourni.
#'
#' @param dataframe Un dataframe contenant les données sur lesquelles ajouter
#' la variable `code_prelevement_analyse`.
#' @param version Une chaîne de caractères représentant la version de la
#' séquence à utiliser.
#'
#' @return Un dataframe avec une nouvelle colonne `code_prelevement_analyse`
#' contenant les valeurs de la séquence PostgreSQL.
#'
#' @importFrom DBI dbGetQuery dbDisconnect
#' @importFrom dplyr mutate
#' @importFrom glue glue
#' @importFrom datalibaba connect_to_db
#' @export
#' @examples
#' # Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple
#' dataframe <- data.frame(
#' id_prelevement = 1:5,
#' autre_colonne = sample(letters, 5)
#' )
#' # Définir une version pour l'exemple
#' version <- "v1"
#'
#' # Utiliser la fonction add_code_prelevement() avec la version souhaitée
#' dataframe <- add_code_prelevement_analyse(
#' dataframe, version)
#'
add_code_prelevement_analyse <- function(dataframe, version) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Créer la séquence correspondant à la table
create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;")
# Exécuter le script dans la base de données
DBI::dbExecute(connexion, create_sequence)
# Construire le nom de la séquence
sequence_name <- glue::glue("nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq")
# Initialiser une liste pour stocker les valeurs de la séquence
code_prelevements_analyses <- c()
# Pour chaque ligne du dataframe, obtenir une valeur de la séquence
for (i in 1:nrow(dataframe)) {
query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement_analyse")
result <- DBI::dbGetQuery(connexion, query)
code_prelevements_analyses <- c(code_prelevements_analyses, result$code_prelevement_analyse)
}
# Ajouter la nouvelle variable au dataframe
dataframe <- dataframe |>
dplyr::mutate(code_prelevement_analyse = code_prelevements_analyses)
# Fermer la connexion à la base de données
DBI::dbDisconnect(connexion)
return(dataframe)
}
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter.
#' Créer une table d'analyses de nitrates
#'
......
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand # nolint: line_length_linter.
#' Créer une table de prélèvements de nitrates
#'
......
# WARNING - Generated by {fusen} from dev/flat_create_table_sequence.Rmd: do not edit by hand # nolint: line_length_linter.
#' Créer une table de prélèvements et analyses de nitrates
#'
#' @description Cette fonction crée une table dans une base de données PostgreSQL
#' pour stocker les informations relatives aux prélèvements et 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_table_nitrate_prelevement_analyse <- 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")
# Liste des requêtes SQL
sql_commands <- c(
glue::glue("CREATE TABLE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version} (
code_prelevement_analyse serial NOT NULL,
code_intervenant character varying(20),
source character varying(10),
code_reseau character varying(254),
code_station character varying(10),
date_prelevement date,
heure_prelevement character varying(8),
code_support integer,
nature_eau character varying(3),
id_usage character varying(3),
id_prelevement_motif character varying(2),
commentaire character varying(254),
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_prelevement_analyse_{version} PRIMARY KEY (code_prelevement_analyse),
CONSTRAINT fk_n_support FOREIGN KEY (code_support)
REFERENCES sandre.n_support (code_support) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET DEFAULT,
CONSTRAINT fk_parametre FOREIGN KEY (code_parametre)
REFERENCES qualite_cours_d_eau.parametre (code_parametre) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET DEFAULT,
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_remarque FOREIGN KEY (code_remarque)
REFERENCES sandre.n_remarque (code_remarque) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
) WITH (OIDS=FALSE);"),
glue::glue("ALTER TABLE nitrates.nitrate_prelevement_analyse_{version} OWNER TO adminpsql;"),
glue::glue("GRANT ALL ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO adminpsql;"),
glue::glue("GRANT ALL ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO writer_production;"),
glue::glue("GRANT SELECT ON TABLE nitrates.nitrate_prelevement_analyse_{version} TO reader_production;"),
glue::glue("COMMENT ON TABLE nitrates.nitrate_prelevement_analyse_{version} IS
'Table des prélèvements et analyses 2007-{last_year} (version {version} du {date_now})';"),
glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;"),
glue::glue("ALTER SEQUENCE nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq
OWNER TO adminpsql;")
)
# Ajout des commentaires sur chaque champ
comments_sql <- c(
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_prelevement_analyse IS 'Identifiant du prélèvement';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_intervenant IS 'Identifiant de l''intervenant';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.source IS 'Source de la donnée';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_reseau IS 'Identifiant du réseau';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_station IS 'Identifiant de la station';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.date_prelevement IS 'Date du prélèvement';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.heure_prelevement IS 'Heure du prélèvement';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_support IS 'Code du support de prélèvement';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.nature_eau IS 'Nature de l''eau du prélèvement (ESO/ESU)';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.id_usage IS 'Code de l''usage du prélèvement';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.id_prelevement_motif IS 'Code du motif du prélèvement';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.commentaire IS 'Commentaire';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_parametre IS 'Identifiant du paramètre analysé';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_fraction_analysee IS 'Identifiant de la fraction analysée';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.date_analyse IS 'Date de l''analyse';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.resultat_analyse IS 'Résultat de l''analyse';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.code_remarque IS 'Code validant la donnée';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.limite_detection IS 'Limite de détection';"),
glue::glue("COMMENT ON COLUMN nitrates.nitrate_prelevement_analyse_{version}.limite_quantification IS 'Limite de quantification';")
)
# Exécuter chaque commande SQL
for (sql in c(sql_commands, comments_sql)) {
DBI::dbExecute(connexion, sql)
}
# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)
# Retourne toutes les commandes exécutées
return(c(sql_commands, comments_sql))
}
flat_create_table_sequence.Rmd:
path: dev/flat_create_table_sequence.Rmd
state: active
R:
- R/add_code_prelevement_analyse.R
- R/create_table_nitrate_prelevement_analyse.R
tests: []
vignettes: vignettes/creation-de-la-table-et-de-la-sequence.Rmd
inflate:
flat_file: dev/flat_create_table_sequence.Rmd
vignette_name: creation-de-la-table-et-de-la-sequence
open_vignette: true
check: true
document: true
overwrite: ask
clean: ask
codecov: false
flat_create_tables_sequences.Rmd:
path: dev/flat_create_tables_sequences.Rmd
state: active
......@@ -15,6 +32,8 @@ flat_create_tables_sequences.Rmd:
check: true
document: true
overwrite: ask
clean: ask
codecov: false
flat_import_ars_data.Rmd:
path: dev/flat_import_ars_data.Rmd
state: active
......
......@@ -103,10 +103,10 @@ create_table_nitrate_prelevement_analyse <- function(version, last_year) {
glue::glue("COMMENT ON TABLE nitrates.nitrate_prelevement_analyse_{version} IS
'Table des prélèvements et analyses 2007-{last_year} (version {version} du {date_now})';"),
glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_seq
glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;"),
glue::glue("ALTER SEQUENCE nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_seq
glue::glue("ALTER SEQUENCE nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq
OWNER TO adminpsql;")
)
......@@ -181,22 +181,29 @@ add_code_prelevement_analyse <- function(dataframe, version) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Créer la séquence correspondant à la table
create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;")
# Exécuter le script dans la base de données
DBI::dbExecute(connexion, create_sequence)
# Construire le nom de la séquence
sequence_name <- glue::glue("nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_seq")
sequence_name <- glue::glue("nitrates.nitrate_prelevement_analyse_{version}_code_prelevement_analyse_seq")
# Initialiser une liste pour stocker les valeurs de la séquence
code_prelevements <- c()
code_prelevements_analyses <- c()
# Pour chaque ligne du dataframe, obtenir une valeur de la séquence
for (i in 1:nrow(dataframe)) {
query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement")
query <- glue::glue("SELECT nextval(\'{sequence_name}\') AS code_prelevement_analyse")
result <- DBI::dbGetQuery(connexion, query)
code_prelevements <- c(code_prelevements, result$code_prelevement)
code_prelevements_analyses <- c(code_prelevements_analyses, result$code_prelevement_analyse)
}
# Ajouter la nouvelle variable au dataframe
dataframe <- dataframe |>
dplyr::mutate(code_prelevement = code_prelevements)
dplyr::mutate(code_prelevement_analyse = code_prelevements_analyses)
# Fermer la connexion à la base de données
DBI::dbDisconnect(connexion)
......@@ -218,7 +225,7 @@ dataframe <- data.frame(
version <- "v1"
# Utiliser la fonction add_code_prelevement() avec la version souhaitée
dataframe <- code_prelevement_analyse(
dataframe <- add_code_prelevement_analyse(
dataframe, version)
```
......
......@@ -262,6 +262,13 @@ add_code_prelevement <- function(dataframe, version) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Créer la séquence correspondant à la table
create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_prelevement_{version}_code_prelevement_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;")
# Exécuter le script dans la base de données
DBI::dbExecute(connexion, create_sequence)
# Construire le nom de la séquence
sequence_name <- glue::glue("nitrates.nitrate_prelevement_{version}_code_prelevement_seq")
......@@ -330,6 +337,13 @@ add_code_analyse <- function(dataframe, version) {
# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = "si_eau", user = "admin")
# Créer la séquence correspondant à la table
create_sequence <- glue::glue("CREATE SEQUENCE IF NOT EXISTS nitrates.nitrate_analyse_{version}_code_analyse_seq
INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1;")
# Exécuter le script dans la base de données
DBI::dbExecute(connexion, create_sequence)
# Construire le nom de la séquence
sequence_name <- glue::glue("nitrates.nitrate_analyse_{version}_code_analyse_seq")
......
......@@ -154,6 +154,49 @@ nitrate_prelevement_analyse_ars <- nitrate_prelevement_analyse_ars |>
```
# Publication en base
## Insertion dans une table intermédiaire
On ajoute un identifiant unique s'appuyant sur une séquence stockée en base :
```{r add_code_prelevement_ars, eval=FALSE}
# Utiliser la fonction add_code_prelevement_analyse() avec la version souhaitée
nitrate_prelevement_analyse_ars <- add_code_prelevement_analyse(
nitrate_prelevement_analyse_ars, version)
# Afficher le dataframe pour vérifier les modifications
print(nitrate_prelevement_analyse_ars)
```
On charge les données consolidées dans un table dédiée :
```{r insert_into_nitrate_prelevement_analyse_version, eval=FALSE}
# Charger les données dans une nouvelle table en base
datalibaba::poster_data(data = nitrate_prelevement_analyse_ars,
table = glue::glue("nitrate_prelevement_analyse_ars", version),
schema = "nitrates",
db = "si_eau",
overwrite = TRUE,
pk = "code_prelevement",
user = "admin")
```
## Insertion des données ARS du nouveau millésime en base dans la table globale
On insère enfin les enregistrements de cette table dans la table globale :
```{r import_and_merge_tables_ars, eval=FALSE}
# Insérer les données de la table du dernier millésime vers la table complète
collectr::import_and_merge_tables(database = "si_eau",
source_table = glue::glue("nitrate_prelevement_analyse_ars", version),
source_schema = "nitrates",
target_table = glue::glue("nitrate_prelevement_analyse", version),
target_schema = "nitrates",
role = "admin")
```
```{r development-inflate, eval=FALSE}
# Run but keep eval=FALSE to avoid infinite loop
# Execute in the console directly
......
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/add_code_prelevement_analyse.R
\name{add_code_prelevement_analyse}
\alias{add_code_prelevement_analyse}
\title{Ajouter une variable code_prelevement_analyse au dataframe}
\usage{
add_code_prelevement_analyse(dataframe, version)
}
\arguments{
\item{dataframe}{Un dataframe contenant les données sur lesquelles ajouter
la variable \code{code_prelevement_analyse}.}
\item{version}{Une chaîne de caractères représentant la version de la
séquence à utiliser.}
}
\value{
Un dataframe avec une nouvelle colonne \code{code_prelevement_analyse}
contenant les valeurs de la séquence PostgreSQL.
}
\description{
Cette fonction ajoute une nouvelle variable
\code{code_prelevement_analyse} au dataframe en utilisant une séquence
PostgreSQL dynamique. La séquence est construite en fonction du
paramètre \code{version} fourni.
}
\examples{
# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple
dataframe <- data.frame(
id_prelevement = 1:5,
autre_colonne = sample(letters, 5)
)
# Définir une version pour l'exemple
version <- "v1"
# Utiliser la fonction add_code_prelevement() avec la version souhaitée
dataframe <- add_code_prelevement_analyse(
dataframe, version)
}
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/create_table_nitrate_prelevement_analyse.R
\name{create_table_nitrate_prelevement_analyse}
\alias{create_table_nitrate_prelevement_analyse}
\title{Créer une table de prélèvements et analyses de nitrates}
\usage{
create_table_nitrate_prelevement_analyse(version, last_year)
}
\arguments{
\item{version}{String. Version de la table (par exemple, 'v1').}
\item{last_year}{Integer. L'année la plus récente incluse dans les données de la table.}
}
\value{
String. Le script SQL utilisé pour créer la table.
}
\description{
Cette fonction crée une table dans une base de données PostgreSQL
pour stocker les informations relatives aux prélèvements et analyses de
nitrates, incluant les contraintes et les séquences nécessaires.
}
---
title: "creation-de-la-table-et-de-la-sequence"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{creation-de-la-table-et-de-la-sequence}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r}
library(data.nitrates)
```
<!-- WARNING - This vignette is generated by {fusen} from dev/flat_create_table_sequence.Rmd: do not edit by hand -->
```{r config}
#| eval: no
# Lire le fichier de configuration
config <- yaml::read_yaml("config.yml")
# Accéder aux valeurs pour version et last_year
version <- config$version
last_year <- config$last_year
```
# Présentation
Cette page contient les fonctions permettant :
- de créer en base la table `nitrates.nitrate_prelevement_analyse_version`,
- d'incrémenter la séquence correspondante au moment de l'import des données.
# Création de la table en base
## Création de la table des prélèvements et analyses et ajout des commentaires
Création de la table `nitrates.nitrate_prelevement_version` :
```{r create_create_table_nitrate_prelevement_analyse}
#| eval: no
# Création du script SQL avec la version choisie
sql <- create_table_nitrate_prelevement_analyse(version, last_year)
```
# Incrémentation de la séquence
## Incrémentation de la table des prélèvements et des analyses
La fonction est utilisée au moment d'importer les données des différentes
sources dans la table `nitrates.nitrate_prelevement_analyse_version` :
```{r example_add_code_prelevement_analyse}
#| eval: no
# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple
dataframe <- data.frame(
id_prelevement = 1:5,
autre_colonne = sample(letters, 5)
)
# Définir une version pour l'exemple
version <- "v1"
# Utiliser la fonction add_code_prelevement() avec la version souhaitée
dataframe <- add_code_prelevement_analyse(
dataframe, version)
```
......@@ -2,7 +2,7 @@
title: "Création des tables et des séquences"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{creation-des-tables-et-des-sequences}
%\VignetteIndexEntry{Création des tables et desquences}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
......@@ -14,13 +14,18 @@ knitr::opts_chunk$set(
)
```
```{r setup}
```{r}
library(data.nitrates)
```
<!-- WARNING - This vignette is generated by {fusen} from dev/flat_create_tables_sequences.Rmd: do not edit by hand -->
```{r config, eval = FALSE}
```{r config}
#| eval: no
# Lire le fichier de configuration
config <- yaml::read_yaml("config.yml")
......@@ -29,42 +34,47 @@ version <- config$version
last_year <- config$last_year
```
# Présentation
Cette page contient les fonctions permettant :
- de créer en base les tables `nitrates.nitrate_prelevement_version` et `nitrates.nitrate_analyse_version`,
- d'incrémenter les séquences correspondantes au moment de l'import des données.
# Création des tables en base
## Création de la table des prélèvements et ajout des commentaires
Création de la table `nitrates.nitrate_prelevement_version` :
```{r create_nitrate_prelevement_table_version}
#| eval: no
```{r create_nitrate_prelevement_table_version, eval = FALSE}
# Création du script SQL avec la version choisie
sql <- create_nitrate_prelevement_table(version, last_year)
```
## Création de la table des analyses et ajout des commentaires
Création de la table `nitrates.nitrate_analyse_version` :
```{r create_nitrate_analyse_table}
#| eval: no
```{r create_nitrate_analyse_table, eval = FALSE}
# Création du script SQL avec la version choisie
sql <- create_nitrate_analyse_table(version, last_year)
```
# Incrémentation des séquences
## Incrémentation de la table des prélèvements
La fonction est utilisée au moment d'importer les données des différentes
sources dans la table `nitrates.nitrate_prelevement_version` :
```{r example_add_code_prelevement}
#| eval: no
```{r example_add_code_prelevement, eval = FALSE}
# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple
dataframe <- data.frame(
id_prelevement = 1:5,
......@@ -79,13 +89,15 @@ dataframe <- add_code_prelevement(
```
## Incrémentation de la table des analyses
La fonction est utilisée au moment d'importer les données des différentes
sources dans la table `nitrates.nitrate_analyse_version` :
On ajoute un identifiant unique s'appuyant sur une séquence stockée en base :
```{r example_add_code_analyse}
#| eval: no
```{r example_add_code_analyse, eval = FALSE}
# Crée un dataframe fictif avec les colonnes nécessaires pour l'exemple
dataframe <- data.frame(
id_prelevement = 1:5,
......@@ -100,3 +112,6 @@ dataframe <- add_code_analyse(
```