update create role and database

ménage, maintenance, documentation
This commit is contained in:
Maël 2020-02-10 13:31:30 +01:00
parent b416fe994c
commit 0286523bbe
2 changed files with 58 additions and 52 deletions

View file

@ -1,5 +1,6 @@
# OpenStreetMap & Ar Redadeg # OpenStreetMap & Ar Redadeg
## Contexte ## 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. 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 ## 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 ### Installer ogr2ogr
ogr2ogr nous servira pour charger des données dans la base.
ogr2ogr fait partie du paquet 'gdal-bin' ogr2ogr fait partie du paquet 'gdal-bin'
``` ```
@ -61,10 +27,11 @@ sudo apt-get install gdal-bin
ogr2ogr --version 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` `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/` `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` `psql -U redadeg -d redadeg < create_tables.sql`
## Charger et traiter les données ## Charger et traiter les données
Phase 1 Phase 1

View file

@ -3,19 +3,27 @@
# utiliser un compte SUPERUSER pour exécuter ce script # 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 # create role
createuser -l -S redadeg psql -h $dbhost -d postgres -c "CREATE USER redadeg WITH PASSWORD 'redadeg' SUPERUSER;"
# password
psql -d postgres -c "ALTER USER redadeg WITH PASSWORD 'redadeg';"
# create database with owner redadeg # 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 # extensions postgis
psql -d redadeg -c "CREATE EXTENSION postgis;" psql -h $dbhost -d redadeg -c "CREATE EXTENSION postgis;"
psql -d redadeg -c "CREATE EXTENSION pgrouting;" psql -h $dbhost -d redadeg -c "CREATE EXTENSION postgis_topology;"
psql -d redadeg -c "CREATE EXTENSION postgis_topology SCHEMA topology;" psql -h $dbhost -d redadeg -c "CREATE EXTENSION pgrouting;"
# create tables # permissions
psql -d redadeg -U redadeg -W < create_tables.sql 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();"