library(collectr)
library(DBI)
library(yaml)
# 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
role <- config$role
collectr::create_schema(host = Sys.getenv("server"),
database = database,
schema = schema_name,
role = role)
# Extraction de la date au format YYYY-MM-DD
version_date <- sub(".*ED([0-9]{4}-[0-9]{2}-[0-9]{2}).*", "\\1", fichier_gpkg)
# Conversion en format dd/mm/yyyy
version_date_fr <- format(as.Date(version_date), "%d/%m/%Y")
# Connection à la base de données PostgreSQL
connexion <- datalibaba::connect_to_db(db = database, user = role)
# Construction des requêtes SQL individuelles
sql_commands <- c(
sprintf(
"COMMENT ON SCHEMA %s IS 'Description vectorielle 3D (structurée en objets) des éléments du territoire et de ses infrastructures, de précision métrique, exploitable à des échelles allant du 1 : 2 000 au 1 : 50 000. Version du %s.';",
schema_name, version_date_fr),
sprintf(
"GRANT USAGE ON SCHEMA %s TO reader_referentiels;", schema_name),
sprintf(
"GRANT ALL ON SCHEMA %s TO writer_referentiels;", schema_name),
sprintf(
"ALTER DEFAULT PRIVILEGES FOR ROLE %s IN SCHEMA %s GRANT SELECT ON TABLES TO reader_referentiels;",
role, schema_name)
)
# Exécution des commandes une par une
for (cmd in sql_commands) {
DBI::dbExecute(connexion, cmd)
}
# Fermeture de la connection à la base de données PostgreSQL
DBI::dbDisconnect(connexion)