From 0286523bbe48b2578cd7f25ddff92b989776131f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl?= Date: Mon, 10 Feb 2020 13:31:30 +0100 Subject: [PATCH] update create role and database MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ménage, maintenance, documentation --- README.md | 82 +++++++++++++++++++------------------- scripts/create_database.sh | 28 ++++++++----- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index 97c393c..b6ab42c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # OpenStreetMap & Ar Redadeg + ## Contexte @@ -9,51 +10,16 @@ But : créer des données de tracés et points kilométriques basé sur le filai Ceci afin d'avoir un tracé le plus précis possible par rapport aux longueurs et de connaître le nom des voies utilisées. +[TODO : décrire le processus depuis umap puis merour. expliquer les limitation (FME)] + ## Installation -### Préparer la base de données - -Avec un compte administrateur PostgreSQL : -* Créer un rôle 'redadeg' -* Créer une base 'redadeg' et mettre le rôle 'redadeg' en propriétaire - -```sql -CREATE USER redadeg WITH LOGIN PASSWORD 'redadeg'; -CREATE DATABASE redadeg WITH OWNER = redadeg; -``` - -Ouvrir une connexion sur la base redadeg, toujours avec un compte administrateur pour installer les extensions : -* postgis -* postgis_topology -* pgrouting (apt install postgresql-11-pgrouting) - -```sql -CREATE EXTENSION postgis ; -CREATE EXTENSION postgis_topology; -CREATE EXTENSION pgrouting; - --- permissions -ALTER SCHEMA topology OWNER TO redadeg ; -ALTER TABLE topology.layer OWNER TO redadeg ; -ALTER TABLE topology.topology OWNER TO redadeg ; -``` - -Si on veut vérifier : `select * from pgr_version()` -(2.6.2) - -Note : l'extension postgis_topology crée forcément un schéma *topology* dans la base de données. - -On prépare également la connexion à la base dans son pgpass - -`nano ~/.pgpass` - -`localhost:5432:redadeg:redadeg:redadeg` - - ### Installer ogr2ogr +ogr2ogr nous servira pour charger des données dans la base. + ogr2ogr fait partie du paquet 'gdal-bin' ``` @@ -61,10 +27,11 @@ sudo apt-get install gdal-bin ogr2ogr --version ``` +### Cloner ce dépôt -### Installer les tables +On commence par cloner ce dépôt. -On commence par cloner ce dépôt +Allez où vous voulez sur votre ordinateur, puis : `git clone https://github.com/osm-bzh/ar_redadeg.git` @@ -72,11 +39,42 @@ Puis on se déplace dans le répertoire `cd ar_redadeg/scripts/` -On exécute le scripts SQL qui va créer toutes les tables + + + +### Créer la base de données + +Utiliser le script suivant avec un compte linux qui dispose d'un rôle 'superuser' sur la base PostgreSQL + +[scripts/create_database.sh](scripts/create_database.sh) + +`./create_database.sh` + +Il va créer : +* un compte (rôle) redadeg / redadeg +* une base 'redadeg' +* les extensions postgis, postgis_topology et pgrouting +* et mettre le rôle 'redadeg' en propriétaire de tout ça + + +Note : l'extension postgis_topology crée forcément un schéma *topology* dans la base de données. + +**Rajouter à la main la connexion à la base dans son pgpass !** + +`nano ~/.pgpass` + +`localhost:5432:redadeg:redadeg:redadeg` + + + +### Créer les tables + +On exécute ensuite le scripts SQL qui va créer toutes les tables `psql -U redadeg -d redadeg < create_tables.sql` + ## Charger et traiter les données Phase 1 diff --git a/scripts/create_database.sh b/scripts/create_database.sh index 7f7e839..df23b1d 100755 --- a/scripts/create_database.sh +++ b/scripts/create_database.sh @@ -3,19 +3,27 @@ # utiliser un compte SUPERUSER pour exécuter ce script +dbhost=localhost + +#psql -h $dbhost -d postgres -c "DROP DATABASE IF EXISTS redadeg; DROP ROLE IF EXISTS redadeg;" + # create role -createuser -l -S redadeg -# password -psql -d postgres -c "ALTER USER redadeg WITH PASSWORD 'redadeg';" +psql -h $dbhost -d postgres -c "CREATE USER redadeg WITH PASSWORD 'redadeg' SUPERUSER;" # create database with owner redadeg -createdb -E UTF8 -O redadeg redadeg +psql -h $dbhost -d postgres -c "CREATE DATABASE redadeg WITH OWNER = redadeg ENCODING = 'UTF8';" -# postgis extensions -psql -d redadeg -c "CREATE EXTENSION postgis;" -psql -d redadeg -c "CREATE EXTENSION pgrouting;" -psql -d redadeg -c "CREATE EXTENSION postgis_topology SCHEMA topology;" +# extensions postgis +psql -h $dbhost -d redadeg -c "CREATE EXTENSION postgis;" +psql -h $dbhost -d redadeg -c "CREATE EXTENSION postgis_topology;" +psql -h $dbhost -d redadeg -c "CREATE EXTENSION pgrouting;" -# create tables -psql -d redadeg -U redadeg -W < create_tables.sql +# permissions +psql -h $dbhost -d redadeg -c "ALTER SCHEMA public OWNER TO redadeg;" +psql -h $dbhost -d redadeg -c "ALTER TABLE topology.layer OWNER TO redadeg ;" +psql -h $dbhost -d redadeg -c "ALTER TABLE topology.topology OWNER TO redadeg ;" + +# vérifications +psql -h $dbhost -d redadeg -c "SELECT * FROM postgis_version();" +psql -h $dbhost -d redadeg -c "SELECT * FROM pgr_version();"