Chargement des librairies

library(datalibaba)
library(dplyr)
library(glue)
library(sf)
library(yaml)

Chargement des variables

# Lire le fichier de configuration
config <- yaml::read_yaml("../config.yml")

# Accéder à la valeur pour fichier_gpkg
fichier_gpkg <- config$fichier_gpkg
# Récupérer les variables liées à la base de données
database <- config$database
schema_name <- config$schema_name
primary_key <- config$primary_key
role <- config$role

Arrondissements

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramètre le nom de la couche
table_name <- "arrondissement"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(arrondissement) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = arrondissement, 
                        table = "n_bdt_arrondissement_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_arrondissement_s_r52
    IS 'Circonscription administrative de l''État dont le chef-lieu est la sous-préfecture, subdivision du
département. Le sous-préfet est chargé de son administration. Le libellé de l''arrondissement est le plus souvent celui de son chef-lieu. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_arrondissement.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_arrondissement, 
                           table = "n_bdt_arrondissement_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Cantons

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramètre le nom de la couche
table_name <- "canton"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(canton) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = canton, 
                        table = "n_bdt_canton_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_canton_s_r52
    IS 'Table des cantons. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_canton.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_canton, 
                           table = "n_bdt_canton_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)
    
# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Collectivités territoriales

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "collectivite_territoriale"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(collectivite_territoriale) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = collectivite_territoriale, 
                        table = "n_bdt_collectivite_territoriale_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_collectivite_territoriale_s_r52
    IS 'Collectivité territoriale correspondant à l''échelon départemental. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_collectivite_territoriale.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_collectivite_territoriale, 
                           table = "n_bdt_collectivite_territoriale_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Communes

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "commune"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(commune) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = commune, 
                        table = "n_bdt_commune_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_commune_s_r52
    IS 'Circonscription administrative de premier niveau des divisions administratives françaises, administré par
un maire. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_commune.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_commune, 
                           table = "n_bdt_commune_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Communes associées ou déléguées

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "commune_associee_ou_deleguee"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(commune_associee_ou_deleguee) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = commune_associee_ou_deleguee, 
                        table = "n_bdt_commune_associee_ou_deleguee_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_commune_associee_ou_deleguee_s_r52
    IS 'Ancienne commune ayant perdu son statut de collectivité territoriale en fusionnant avec d''autres
communes, mais ayant gardé son territoire et certaines spécificités comme un maire délégué ou une mairie annexe. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_commune_associee_ou_deleguee.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_commune_associee_ou_deleguee, 
                           table = "n_bdt_commune_associee_ou_deleguee_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Départements

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "departement"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(departement) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = departement, 
                        table = "n_bdt_departement_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_departement_s_r52
    IS 'Circonscription administrative de premier niveau des divisions administratives françaises, administré par
un maire. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_departement.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_departement, 
                           table = "n_bdt_departement_s_r52", 
                           schema = {schema_name}, 
                           db = database,
                           user = role)
    
# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

EPCI

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "epci"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(epci) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = epci, 
                        table = "n_bdt_epci_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_epci_s_r52
    IS 'Structure administrative regroupant plusieurs communes afin d’exercer certaines compétences en commun (établissement public de coopération intercommunale. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_epci.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_epci, 
                           table = "n_bdt_epci_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)

Région

Téléchargement des données

On paramètre ensuite le nom de la couche avant de l’importer dans un dataframe :

# Paramétrer le nom de la couche
table_name <- "region"
# Importe la couche dans un dataframe du même nom que la couche
assign(table_name, sf::st_read(fichier_gpkg, layer = table_name, quiet = TRUE))

Renommage du champs géométrique

# Renommer la colonne
sf::st_geometry(region) <- "the_geom"

Création de la table en base

datalibaba::poster_data(data = region, 
                        table = "n_bdt_region_s_r52", 
                        schema = schema_name, 
                        db = database,
                        pk = primary_key, 
                        overwrite = TRUE, 
                        user = role)

Ajout des commentaires

# Établir une connexion à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
  
# Génération de la date du jour
date_now <- format(Sys.Date(), "%d/%m/%Y")

# Requête pour ajouter le commentaire sur la table
table_comment <- glue::glue("COMMENT ON TABLE {schema_name}.n_bdt_region_s_r52
    IS 'Structure administrative regroupant plusieurs communes afin d’exercer certaines compétences en commun (établissement public de coopération intercommunale. (Publiée le {date_now})';")

# Exécuter la commande SQL
DBI::dbExecute(connexion, table_comment)

source("../data/dico_region.R")

# Ajouter les commentaires sur les champs
datalibaba::post_dico_attr(dico = dico_region, 
                           table = "n_bdt_region_s_r52", 
                           schema = schema_name, 
                           db = database,
                           user = role)

# Fermeture de la connexion à la base de données
DBI::dbDisconnect(connexion)