From a7c2146ad2407611a009d5674861f66d21a3763b Mon Sep 17 00:00:00 2001 From: amandine-sahl Date: Thu, 17 Oct 2024 11:58:58 +0200 Subject: [PATCH] Suppression de l'installation sans taxhub + simplification installation sans ref_geo --- atlas/configuration/settings.ini.sample | 13 +- data/atlas/without_ref_geo.sql | 11 ++ data/gn2/atlas_ref_taxonomie.sql | 9 -- docs/changelog.rst | 1 + docs/installation.rst | 4 +- install_db.sh | 166 +++++------------------- 6 files changed, 56 insertions(+), 148 deletions(-) create mode 100644 data/atlas/without_ref_geo.sql diff --git a/atlas/configuration/settings.ini.sample b/atlas/configuration/settings.ini.sample index 712ebe21c..f8eddf134 100644 --- a/atlas/configuration/settings.ini.sample +++ b/atlas/configuration/settings.ini.sample @@ -42,14 +42,15 @@ use_ref_geo_gn2=true # Souhaitez-vous installer le schéma taxonomie de TaxHub dans la BDD de GeoNature-atlas ? # false si vous souhaitez utiliser celui de GeoNature en FDW # ATTENTION : Doit être true si geonature_source=false -install_taxonomie=false +# OBSOLETE +# install_taxonomie=false ################################################ ##### CONNEXION A LA BDD GEONATURE SOURCE ###### ################################################ -# Necessaire uniquement si on veut se connecter à la BDD source GeoNature en foreign data wrapper -# Si vous n'utilisez pas GeoNature, vous pouvez vous inspirer du fichier data/atlas_geonature.sql +# Paramètres de connexion à la BDD source GeoNature et/ou Taxhub en foreign data wrapper +# Si vous n'utilisez pas GeoNature, pour les données d'observation, vous pouvez vous inspirer du fichier data/atlas_geonature.sql # pour vous connecter à une autre BDD mère # Host de la BDD GeoNature source @@ -85,7 +86,8 @@ type_territoire="'PEC'" # Creer la table des communes à partir d'un shapefile ? # Si false, modifiez la creation de 'atlas.vm_communes' dans data/atlas/atlas.vm_communes.sql -import_commune_shp=true +# PARAMETRE OBSOLETE OBLIGATOIRE SI PAS DE REF_GEO +# import_commune_shp=true # Chemin et nom des colonnes du SHP des communes du territoire. Laisser tel quel (en modifiant uniquement MYUSERLINUX) # pour utiliser les communes du PnEcrins par défaut @@ -120,7 +122,8 @@ altitudes=(0 500 1000 1500 2000 2500 3000 3500 4000) # Version de TaxHub à utiliser pour installer le schéma taxonomie si install_taxonomie=true # Numéro de version conseillée et testée : 1.8.1 -taxhub_release=1.8.1 +# PARAMETRE OBSOLETE Taxhub est OBLIGATOIRE +# taxhub_release=1.8.1 #### ID DES TYPES DES ATTRIBUTS DECRIVANT LES TAXONS DANS atlas.vm_cor_taxon_attribut -- ## !! si changement: modifier également dans main/configuration/config.py diff --git a/data/atlas/without_ref_geo.sql b/data/atlas/without_ref_geo.sql new file mode 100644 index 000000000..7b8565aca --- /dev/null +++ b/data/atlas/without_ref_geo.sql @@ -0,0 +1,11 @@ +CREATE INDEX index_gist_t_layer_territoire ON atlas.t_layer_territoire USING gist(the_geom); +CREATE INDEX index_gist_t_layers_communes ON atlas.l_communes USING gist (the_geom); + +CREATE TABLE atlas.t_mailles_territoire as +SELECT m.geom AS the_geom, ST_AsGeoJSON(st_transform(m.geom, 4326)) as geojson_maille +FROM atlas.t_mailles_t_mailles_source m, atlas.t_layer_territoire t +WHERE ST_Intersects(m.geom, t.the_geom); + +CREATE INDEX index_gist_t_mailles_territoire ON atlas.t_mailles_territoire USING gist (the_geom); +ALTER TABLE atlas.t_mailles_territoire ADD COLUMN id_maille serial; +ALTER TABLE atlas.t_mailles_territoire ADD PRIMARY KEY (id_maille); \ No newline at end of file diff --git a/data/gn2/atlas_ref_taxonomie.sql b/data/gn2/atlas_ref_taxonomie.sql index fdc5df165..84652a29f 100644 --- a/data/gn2/atlas_ref_taxonomie.sql +++ b/data/gn2/atlas_ref_taxonomie.sql @@ -9,12 +9,3 @@ CREATE SCHEMA IF NOT EXISTS taxonomie; IMPORT FOREIGN SCHEMA taxonomie LIMIT TO (taxonomie.taxref, taxonomie.cor_taxon_attribut, taxonomie.t_medias) FROM SERVER geonaturedbserver INTO taxonomie ; - -ALTER TABLE taxonomie.taxref OWNER TO myuser; -GRANT ALL ON TABLE taxonomie.taxref TO myuser; - -ALTER TABLE taxonomie.cor_taxon_attribut OWNER TO myuser; -GRANT ALL ON TABLE taxonomie.cor_taxon_attribut TO myuser; - -ALTER TABLE taxonomie.t_medias OWNER TO myuser; -GRANT ALL ON TABLE taxonomie.t_medias TO myuser; diff --git a/docs/changelog.rst b/docs/changelog.rst index 66691ebeb..1cb38c87c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -8,6 +8,7 @@ CHANGELOG 🚀 **Nouveautés** - Ajout du lien "Données personelles" dans le pied de page (#527 @juggler31) +- Suppression du support des installations sans TaxHub 🐛 **Corrections** diff --git a/docs/installation.rst b/docs/installation.rst index 02a3328ad..5e1d19f7c 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -147,9 +147,7 @@ Plus de détails sur les différentes vues matérialisées dans le fichier `> log/install_db.log fi + ########################### + ###### REF_GEO + ########################### if $use_ref_geo_gn2 then echo "Creation of geographic tables from the ref_geo schema of the geonature database" @@ -139,26 +142,16 @@ if ! database_exists $db_name -lco GEOMETRY_NAME=the_geom \ PG:"host=$db_host port=$db_port dbname=$db_name user=$owner_atlas password=$owner_atlas_pass schemas=atlas" \ -nln t_layer_territoire $limit_shp - - # FR: Creation de l'index GIST sur la couche territoire atlas.t_layer_territoire - # EN: Creation of the GIST index on the territory layer atlas.t_layer_territory - sudo -u postgres -s psql -d $db_name -c "CREATE INDEX index_gist_t_layer_territoire ON atlas.t_layer_territoire USING gist(the_geom); " &>> log/install_db.log - + # FR: Import du shape des communes ($communes_shp) dans la BDD (si parametre import_commune_shp = TRUE) / atlas.l_communes # EN: Import of the shape of the communes ($communes_shp) in the DB (if parameter import_commune_shp = TRUE) / atlas.l_communes - if $import_commune_shp - then - file_name=`echo $(basename $communes_shp) | cut -d "." -f1` - ogr2ogr -f "PostgreSQL" \ - -t_srs EPSG:4326 \ - -lco GEOMETRY_NAME=the_geom \ - -sql "SELECT $colonne_nom_commune AS commune_maj, $colonne_insee AS insee FROM $file_name" \ - PG:"host=$db_host port=$db_port dbname=$db_name user=$owner_atlas password=$owner_atlas_pass schemas=atlas" \ - -nln l_communes $communes_shp - - sudo -u postgres -s psql -d $db_name -c "CREATE INDEX index_gist_t_layers_communes ON atlas.l_communes USING gist (the_geom);" &>> log/install_db.log - - fi + file_name=`echo $(basename $communes_shp) | cut -d "." -f1` + ogr2ogr -f "PostgreSQL" \ + -t_srs EPSG:4326 \ + -lco GEOMETRY_NAME=the_geom \ + -sql "SELECT $colonne_nom_commune AS commune_maj, $colonne_insee AS insee FROM $file_name" \ + PG:"host=$db_host port=$db_port dbname=$db_name user=$owner_atlas password=$owner_atlas_pass schemas=atlas" \ + -nln l_communes $communes_shp # FR: Mise en place des mailles # EN: Setting up the meshes @@ -169,10 +162,7 @@ if ! database_exists $db_name if $metropole then # Je dézippe mailles fournies par l'INPN aux 3 échelles - cd data/ref - rm -f L93*.dbf L93*.prj L93*.sbn L93*.sbx L93*.shp L93*.shx - unzip L93_${taillemaille}K.zip - cd ../../ + unzip data/ref/L93_${taillemaille}K.zip if [ $taillemaille = 1 ] then @@ -189,22 +179,11 @@ if ! database_exists $db_name -t_srs EPSG:4326 \ -lco GEOMETRY_NAME=geom \ PG:"host=$db_host port=$db_port dbname=$db_name user=$owner_atlas password=$owner_atlas_pass schemas=atlas" \ - -nln t_mailles_$taillemaille $file_name - - # Creation de la table atlas.t_mailles_territoire avec la taille de maille passée en parametre ($taillemaille). Pour cela j'intersecte toutes les mailles avec mon territoire - # TODO : rajouter la colonne id_maille - sudo -u postgres -s psql -d $db_name -c "CREATE TABLE atlas.t_mailles_territoire as - SELECT m.geom AS the_geom, ST_AsGeoJSON(st_transform(m.geom, 4326)) as geojson_maille - FROM atlas.t_mailles_"$taillemaille" m, atlas.t_layer_territoire t - WHERE ST_Intersects(m.geom, t.the_geom); - - CREATE INDEX index_gist_t_mailles_territoire - ON atlas.t_mailles_territoire - USING gist (the_geom); - ALTER TABLE atlas.t_mailles_territoire - ADD COLUMN id_maille serial; - ALTER TABLE atlas.t_mailles_territoire - ADD PRIMARY KEY (id_maille);" &>> log/install_db.log + -nln t_mailles_source $file_name + + # Run sql files + export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/atlas/without_ref_geo.sql &>> log/install_db.log + fi # FR: Conversion des limites du territoire en json @@ -213,94 +192,18 @@ if ! database_exists $db_name ogr2ogr -f "GeoJSON" -t_srs "EPSG:4326" -s_srs "EPSG:4326" ./atlas/static/custom/territoire.json \ PG:"host=$db_host user=$owner_atlas dbname=$db_name port=$db_port password=$owner_atlas_pass" "atlas.t_layer_territoire" - - # FR: Si j'installe le schéma taxonomie de TaxHub dans la BDD de GeoNature-atlas ($install_taxonomie = True), - # alors je récupère les fichiers dans le dépôt de TaxHub et les éxécute - # EN: If I install the TaxHub taxonomy schema in the GeoNature-atlas DB ($install_taxonomy = True), - # then I get the files from the TaxHub repository and run them - if $install_taxonomie - then - wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/inpn/data_inpn_taxhub.sql -P /tmp/taxhub - - array=( TAXREF_INPN_v11.zip ESPECES_REGLEMENTEES_v11.zip LR_FRANCE_20160000.zip ) - for i in "${array[@]}" - do - if [ ! -f '/tmp/taxhub/'$i ] - then - wget http://geonature.fr/data/inpn/taxonomie/$i -P /tmp/taxhub - else - echo $i exists - fi - unzip /tmp/taxhub/$i -d /tmp/taxhub - done - - echo "Getting 'taxonomie' schema creation scripts..." - wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/taxhubdb.sql -P /tmp/taxhub - wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/taxhubdata.sql -P /tmp/taxhub - wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/taxhubdata_taxons_example.sql -P /tmp/taxhub - wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/taxhubdata_atlas.sql -P /tmp/taxhub - wget https://raw.githubusercontent.com/PnX-SI/TaxHub/$taxhub_release/data/materialized_views.sql -P /tmp/taxhub - - echo "Creating 'taxonomie' schema..." - echo "" &>> log/install_db.log - echo "" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "Creating 'taxonomie' schema" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "" &>> log/install_db.log - export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/taxhub/taxhubdb.sql &>> log/install_db.log - - echo "Inserting INPN taxonomic data... (This may take a few minutes)" - echo "" &>> log/install_db.log - echo "" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "Inserting INPN taxonomic data" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "" &>> log/install_db.log - sudo -n -u postgres -s psql -d $db_name -f /tmp/taxhub/data_inpn_taxhub.sql &>> log/install_db.log - - echo "Creating dictionaries data for taxonomic schema..." - echo "" &>> log/install_db.log - echo "" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "Creating dictionaries data for taxonomic schema" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "" &>> log/install_db.log - export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/taxhub/taxhubdata.sql &>> log/install_db.log - - echo "Inserting sample dataset of taxons for taxonomic schema..." - echo "" &>> log/install_db.log - echo "" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "Inserting sample dataset of taxons for taxonomic schema" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "" &>> log/install_db.log - export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/taxhub/taxhubdata_taxons_example.sql &>> log/install_db.log - - echo "--------------------" &>> log/install_db.log - echo "Inserting sample dataset - atlas attributes" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "" &>> log/install_db.log - export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/taxhub/taxhubdata_atlas.sql &>> log/install_db.log - - echo "Creating a view that represent the taxonomic hierarchy..." - echo "" &>> log/install_db.log - echo "" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "Creating a view that represent the taxonomic hierarchy" &>> log/install_db.log - echo "--------------------" &>> log/install_db.log - echo "" &>> log/install_db.log - export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/taxhub/materialized_views.sql &>> log/install_db.log - elif $geonature_source - then - # FR: Creation des tables filles en FWD - # EN: Creation of daughter tables in FWD - echo "Creating the connection to GeoNature for the taxonomy" - sudo cp data/gn2/atlas_ref_taxonomie.sql /tmp/atlas/atlas_ref_taxonomie.sql &>> log/install_db.log - sudo sed -i "s/myuser;$/$owner_atlas;/" /tmp/atlas/atlas_ref_taxonomie.sql &>> log/install_db.log - export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/atlas/atlas_ref_taxonomie.sql &>> log/install_db.log - fi - + ########################### + ###### TAXHUB + ########################### + # FR: Creation des tables filles en FWD + # EN: Creation of daughter tables in FWD + echo "Creating the connection to GeoNature for the taxonomy" + export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f data/gn2/atlas_ref_taxonomie.sql &>> log/install_db.log + + + ########################### + ###### Occurence data + ########################### echo "Creating DB structure" # FR: Si j'utilise GeoNature ($geonature_source = True), alors je créé les tables filles en FDW connectées à la BDD de GeoNature # EN: If I use GeoNature ($geonature_source = True), then I create the child tables in FDW connected to the GeoNature DB @@ -316,6 +219,10 @@ if ! database_exists $db_name export PGPASSWORD=$owner_atlas_pass;psql -d $db_name -U $owner_atlas -h $db_host -p $db_port -f /tmp/atlas/without_geonature.sql &>> log/install_db.log fi + + ########################### + ###### ATLAS + ########################### # FR: Creation des Vues Matérialisées (et remplacement éventuel des valeurs en dur par les paramètres) # EN: Creation of Materialized Views (and possible replacement of hard values by parameters) echo "----- Creating materialized views ------" @@ -373,6 +280,7 @@ if ! database_exists $db_name -v type_maille=$type_maille &>> log/install_db.log echo "[$(date +'%H:%M:%S')] Passed - Duration : $((($SECONDS-$time_temp)/60))m$((($SECONDS-$time_temp)%60))s" fi + # FR: Création de la vue matérialisée vm_mailles_observations (nombre d'observations par maille et par taxon) # EN: Creation of the materialized view vm_meshes_observations (number of observations per mesh and per taxon) echo "[$(date +'%H:%M:%S')] Creating atlas.vm_observations_mailles..." @@ -391,11 +299,7 @@ if ! database_exists $db_name cd data/ref rm -f L*.shp L*.dbf L*.prj L*.sbn L*.sbx L*.shx output_clip.* cd ../.. - sudo -n rm -r /tmp/atlas - if [ -d '/tmp/taxhub' ] - then - rm -r /tmp/taxhub - fi + sudo -n rm -r /tmp/atlas echo "Install finished - Duration :$(($SECONDS/60))m$(($SECONDS%60))s" fi