-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #568 from georchestra/issue_553
Nouveau script de chargement des données
- Loading branch information
Showing
65 changed files
with
3,380 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,9 @@ | ||
|
||
database/config.sh | ||
|
||
.DS_Store | ||
docs/_build/ | ||
docs/rsync.bash | ||
cadastrapp/target/* | ||
addons/cadastrapp/js/build/cadastrapp.js | ||
database/test.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Alimentation de la base de données de cadastrapp | ||
|
||
Ceci est la documentation des traitements qui mettent à jour la base de données applicative de cadastrapp. | ||
|
||
|
||
## Principe de fonctionnement | ||
|
||
Avant de configurer et jouer ce script, vous devez disposez d'une base de données PostgreSQL / PostGIS contenant des données cadastrales créées en utilisant le greffon **QGIS [cadastre](https://plugins.qgis.org/plugins/cadastre/)** | ||
|
||
Cette base de données sera lue par le script qui va créer les tables et **[les vues matérialisées](https://www.postgresql.org/docs/current/sql-creatematerializedview.html)** dont cadastrapp a besoin pour fonctionner. | ||
|
||
Le fichier de configuration du script vous permet de définir si les données cadastre QGIS sont dans la même base de données que les données cadastrapp ou pas, sur le même serveur ou pas. | ||
|
||
L'utilisation des vues matérialisées permet de gagner du temps lors de la mise de vos données car un simple REFRESH ```MATERIALIZED VIEW table_name``` suffit à relire la base de données source. | ||
|
||
|
||
## Prérequis | ||
|
||
### Versions PostgreSQL et PostGIS | ||
|
||
* un système linux type Debian 9 + ou Ubuntu 16+ | ||
* PostgreSQL > 9.6 | ||
* PostGIS > 2.1 mais < 3.0 | ||
|
||
|
||
### Si toutes les données sont dans la même base de données | ||
|
||
C'est le cas le plus simple. | ||
|
||
Dans ce cas il faut 2 schémas. Exemples : | ||
* `cadastre_gis` : il contiendra les données cadastre produites par le plugin cadastre de QGIS | ||
* `cadastrapp` : il contiendra les données applicatives pour cadastrapp et créées par notre script | ||
|
||
|
||
### Si les données sont dans 2 bases de données distinctes | ||
|
||
Dans ce cas on aura 2 bases de données différentes (sur la même machine ou pas) et donc 2 schémas différents. Exemples : | ||
* `base_1.cadastre_gis` : il contiendra les données cadastre produites par le plugin cadastre de QGIS | ||
* `base_2.cadastrapp` : il contiendra les données applicatives pour cadastrapp et créées par notre script | ||
|
||
La base de données cible qui contiendra les données de cadastrapp devra comporter l'extension **[dblink](http://www.postgresql.org/docs/current//dblink.html)**. | ||
|
||
|
||
## Configuration du script | ||
|
||
Sous linux : | ||
* aller dans le répertoire `database` | ||
* dupliquer le fichier `config_sample.sh` | ||
* le renommer en `config.sh` | ||
* l'ouvrir et compléter les informations de connection aux bases de données | ||
* si les données cadastre QGIS et cadastrapp sont dans la même base de données, laisser `uniqueDB=True` sinon mettre `uniqueDB=False` | ||
|
||
|
||
## Utilisation du script | ||
|
||
Sous linux : | ||
* aller dans le répertoire `database` | ||
* exécuter le script `cadastrapp_load_data.sh` | ||
|
||
|
||
## Mise à jour des données | ||
|
||
Sous linux : | ||
* aller dans le répertoire `database` | ||
* exécuter le script `cadastrapp_update_data.sh` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
#! /bin/bash | ||
|
||
|
||
clear | ||
git_version=$(git rev-parse HEAD) | ||
|
||
echo "--------------------------------------------------------------" | ||
echo " Cadastrapp : script de chargement des données" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
echo " version : $git_version" | ||
echo "" | ||
echo "--------------------------------------------------------------" | ||
echo " Lecture du fichier de configuration" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
|
||
# lecture du fichier de configuration des connexions | ||
. config.sh | ||
|
||
if [ "$uniqueDB" = True ] ; then | ||
echo " 1 seule base de données sera utilisée : $cadastrappDBName sur la machine $cadastrappDBHost" | ||
echo " schéma des données cadastre QGIS : $qgisDBSchema" | ||
echo " schéma des données cadastrapp : $cadastrappDBSchema" | ||
elif [ "$uniqueDB" = False ] ; then | ||
echo " 2 bases de données seront utilisées" | ||
echo " host > db > schema" | ||
echo " source QGIS : $qgisDBHost > $qgisDBName > $qgisDBSchema" | ||
echo " cible cadastrapp : $cadastrappDBHost > $cadastrappDBName > $cadastrappDBSchema" | ||
else | ||
echo " pb de configuration : stop" | ||
exit 1 | ||
fi | ||
|
||
echo "" | ||
read -p " Si ces infos sont exactes : appuyer sur la touche [Entrée] sinon faire ctrl + C pour arrêter." | ||
echo "" | ||
|
||
|
||
# | ||
# cette fonction permet de remplacer les infos de connection | ||
# avant exécution | ||
# | ||
replaceAndLaunch (){ | ||
|
||
if [ -z "$1" ] || [ ! -e $1 ] ; then | ||
echo "Le fichier SQL $1 n'existe pas." | ||
exit 1 | ||
else | ||
echo " Exécution du fichier : $1" | ||
fi | ||
|
||
cat $1 | sed "{ | ||
s/#schema_cadastrapp/$cadastrappDBSchema/g | ||
s/#user_cadastrapp/$cadastrappDBUser/g | ||
s/#DBHost_qgis/$qgisDBHost/g | ||
s/#DBPort_qgis/$qgisDBPort/g | ||
s/#DBName_qgis/$qgisDBName/g | ||
s/#DBSchema_qgis/$qgisDBSchema/g | ||
s/#DBUser_qgis/$qgisDBUser/g | ||
s/#DBpasswd_qgis/$qgisDBPassword/g | ||
}" |\ | ||
PGPASSWORD=$cadastrappDBPassword psql -h $cadastrappDBHost -p $cadastrappDBPort -d $cadastrappDBName -U $cadastrappDBUser | ||
|
||
} | ||
|
||
|
||
# test de connection aux bases de données | ||
# notamment que cadastrappDBUser puisse lire dans qgisDBSchema | ||
# TODO | ||
|
||
# on purge la BD cadastrapp existante | ||
. purge_db.sh | ||
#read -p " pause pour vérifier que la BD est bien vide" | ||
|
||
# on recrée les tables | ||
. create_tables.sh | ||
|
||
# on remplit les tables | ||
# les tables sont remplies à l'étape d'avant | ||
|
||
# on recrée les vues | ||
. create_views.sh | ||
|
||
# on applique les commentaires | ||
. create_comments.sh | ||
|
||
# traitement à part pour les tables d'information foncière | ||
. tables_request.sh | ||
|
||
# on fait un bilan | ||
# TODO | ||
|
||
echo "" | ||
echo "--------------------------------------------------------------" | ||
echo " FIN " | ||
echo "--------------------------------------------------------------" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
#! /bin/bash | ||
|
||
|
||
clear | ||
git_version=$(git rev-parse HEAD) | ||
|
||
echo "--------------------------------------------------------------" | ||
echo " Cadastrapp : script de mise à jour des données" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
echo " version : $git_version" | ||
echo "" | ||
echo "--------------------------------------------------------------" | ||
echo " Lecture du fichier de configuration" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
|
||
# lecture du fichier de configuration des connexions | ||
. config.sh | ||
|
||
if [ "$uniqueDB" = True ] ; then | ||
echo " 1 seule base de données sera utilisée : $cadastrappDBName sur la machine $cadastrappDBHost" | ||
echo " schéma des données cadastre QGIS : $qgisDBSchema" | ||
echo " schéma des données cadastrapp : $cadastrappDBSchema" | ||
elif [ "$uniqueDB" = False ] ; then | ||
echo " 2 bases de données seront utilisées" | ||
echo " host > db > schema" | ||
echo " source QGIS : $qgisDBHost > $qgisDBName > $qgisDBSchema" | ||
echo " cible cadastrapp : $cadastrappDBHost > $cadastrappDBName > $cadastrappDBSchema" | ||
else | ||
echo " pb de configuration : stop" | ||
exit 1 | ||
fi | ||
|
||
echo "" | ||
read -p " Si ces infos sont exactes : appuyer sur la touche [Entrée] sinon faire ctrl + C pour arrêter." | ||
echo "" | ||
|
||
|
||
# | ||
# cette fonction permet de remplacer les infos de connection | ||
# avant exécution | ||
# | ||
replaceAndLaunch (){ | ||
|
||
if [ -z "$1" ] || [ ! -e $1 ] ; then | ||
echo "Le fichier SQL $1 n'existe pas." | ||
exit 1 | ||
else | ||
echo " Exécution du fichier : $1" | ||
fi | ||
|
||
cat $1 | sed "{ | ||
s/#schema_cadastrapp/$cadastrappDBSchema/g | ||
s/#user_cadastrapp/$cadastrappDBUser/g | ||
s/#DBHost_qgis/$qgisDBHost/g | ||
s/#DBPort_qgis/$qgisDBPort/g | ||
s/#DBName_qgis/$qgisDBName/g | ||
s/#DBSchema_qgis/$qgisDBSchema/g | ||
s/#DBUser_qgis/$qgisDBUser/g | ||
s/#DBpasswd_qgis/$qgisDBPassword/g | ||
}" |\ | ||
PGPASSWORD=$cadastrappDBPassword psql -h $cadastrappDBHost -p $cadastrappDBPort -d $cadastrappDBName -U $cadastrappDBUser | ||
|
||
} | ||
|
||
|
||
# test de connection aux bases de données | ||
# notamment que cadastrappDBUser puisse lire dans qgisDBSchema | ||
# TODO | ||
|
||
# on met à jour les vues matérialisées | ||
replaceAndLaunch sql/vues/_update.sql | ||
|
||
|
||
# on fait un bilan | ||
# TODO | ||
|
||
echo "" | ||
echo "--------------------------------------------------------------" | ||
echo " FIN " | ||
echo "--------------------------------------------------------------" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#! /bin/bash | ||
|
||
# fichier de configuration des infos de connexions | ||
# aux bases de données | ||
|
||
# BD cadastre QGIS (lecture) | ||
qgisDBHost=localhost | ||
qgisDBPort=5432 | ||
qgisDBName=bdu | ||
qgisDBSchema=cadastre_qgis | ||
qgisDBUser=cadastre_qgis_user | ||
qgisDBPassword=cadastre_qgis_mdp | ||
|
||
# BD cadastrapp (écriture) | ||
cadastrappDBHost=localhost | ||
cadastrappDBPort=5432 | ||
cadastrappDBName=georchestra | ||
cadastrappDBSchema=cadastrapp | ||
cadastrappDBUser=cadastrapp_user | ||
cadastrappDBPassword=cadastrapp_mdp | ||
|
||
# le schéma cadastrapp et le schéma cadastre_qgis sont dans la même base de données | ||
# True / False | ||
uniqueDB=True | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#! /bin/bash | ||
|
||
# ce script va créer les commentaires sur les tables quand il en faut | ||
|
||
|
||
echo "--------------------------------------------------------------" | ||
echo " Création des commentaires sur les tables et les vues" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
|
||
# Création des commentaires | ||
|
||
replaceAndLaunch sql/comments/Commune.sql | ||
replaceAndLaunch sql/comments/Section.sql | ||
replaceAndLaunch sql/comments/Parcelle.sql | ||
replaceAndLaunch sql/comments/Proprietaire.sql | ||
replaceAndLaunch sql/comments/CoProprieteParcelle.sql | ||
replaceAndLaunch sql/comments/ProprietaireParcelle.sql | ||
replaceAndLaunch sql/comments/ProprieteBatie.sql | ||
replaceAndLaunch sql/comments/ProprieteNonBatie.sql | ||
replaceAndLaunch sql/comments/ProprieteNonBatieSufExo.sql | ||
replaceAndLaunch sql/comments/HabitationDetails.sql | ||
replaceAndLaunch sql/comments/Lot.sql | ||
replaceAndLaunch sql/comments/uf_parcelle.sql | ||
|
||
echo " Fait" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#! /bin/bash | ||
|
||
# ce script va créer les tables | ||
|
||
|
||
echo "--------------------------------------------------------------" | ||
echo " Création des tables" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
|
||
# Création des tables | ||
|
||
replaceAndLaunch sql/tables/prop_ccocac.sql | ||
replaceAndLaunch sql/tables/prop_ccocac_simple.sql | ||
replaceAndLaunch sql/tables/prop_ccodem.sql | ||
replaceAndLaunch sql/tables/prop_ccodro.sql | ||
replaceAndLaunch sql/tables/prop_ccoqua.sql | ||
replaceAndLaunch sql/tables/prop_ccogrm.sql | ||
replaceAndLaunch sql/tables/prop_dnatpr.sql | ||
replaceAndLaunch sql/tables/prop_dmatto.sql | ||
replaceAndLaunch sql/tables/prop_dmatgm.sql | ||
replaceAndLaunch sql/tables/prop_type_filiation.sql | ||
replaceAndLaunch sql/tables/prop_bati_detent.sql | ||
replaceAndLaunch sql/tables/groupe_autorisation.sql | ||
|
||
echo " Fait" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#! /bin/bash | ||
|
||
# ce script va créer les vues matérialisées | ||
|
||
|
||
|
||
echo "--------------------------------------------------------------" | ||
echo " Création des vues matérialisées" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
|
||
if [ "$uniqueDB" = True ] ; then | ||
|
||
replaceAndLaunch sql/vues/Commune.sql | ||
replaceAndLaunch sql/vues/Section.sql | ||
replaceAndLaunch sql/vues/Parcelle.sql | ||
replaceAndLaunch sql/vues/Proprietaire.sql | ||
replaceAndLaunch sql/vues/CoProprieteParcelle.sql | ||
replaceAndLaunch sql/vues/ProprietaireParcelle.sql | ||
replaceAndLaunch sql/vues/ProprieteBatie.sql | ||
replaceAndLaunch sql/vues/ProprieteNonBatie.sql | ||
replaceAndLaunch sql/vues/ProprieteNonBatieSufExo.sql | ||
replaceAndLaunch sql/vues/HabitationDetails.sql | ||
replaceAndLaunch sql/vues/Lot.sql | ||
replaceAndLaunch sql/vues/uf_parcelle.sql | ||
|
||
elif [ "$uniqueDB" = False ] ; then | ||
|
||
replaceAndLaunch sql/vues_dblink/Commune.sql | ||
replaceAndLaunch sql/vues_dblink/Section.sql | ||
replaceAndLaunch sql/vues_dblink/Parcelle.sql | ||
replaceAndLaunch sql/vues_dblink/Proprietaire.sql | ||
replaceAndLaunch sql/vues_dblink/CoProprieteParcelle.sql | ||
replaceAndLaunch sql/vues_dblink/ProprietaireParcelle.sql | ||
replaceAndLaunch sql/vues_dblink/ProprieteBatie.sql | ||
replaceAndLaunch sql/vues_dblink/ProprieteNonBatie.sql | ||
replaceAndLaunch sql/vues_dblink/ProprieteNonBatieSufExo.sql | ||
replaceAndLaunch sql/vues_dblink/HabitationDetails.sql | ||
replaceAndLaunch sql/vues_dblink/Lot.sql | ||
replaceAndLaunch sql/vues_dblink/uf_parcelle.sql | ||
|
||
fi | ||
|
||
echo " Fait" | ||
|
||
|
||
echo "--------------------------------------------------------------" | ||
echo " Création des indexes sur les vues matérialisées" | ||
echo "--------------------------------------------------------------" | ||
echo "" | ||
|
||
replaceAndLaunch sql/indexes/indexes_vues_materialisees.sql | ||
|
||
echo " Fait" | ||
|
Oops, something went wrong.