2.3. Initialisation de la base de données
Vous pouvez utiliser pgAdmin afin d’accéder et gérer le serveur de base de données.
Note
En cliquant sur ce lien vous apprendrez à install pgAdmin
2.3.1. Procédure
Dans pgAdmin 4
Se connecter au serveur de la base de données
Create a new database with UTF8 encoding (e.g. qgep_prod).
2.3.1.1. Restaurer le modèle de données démo
Restaurer le dernier modèle de données qui inclut également les données de démonstration:
Télécharger les données démo * https://github.com/QGEP/datamodel/releases/latest * download qgep_vx.y.z_structure_and_demo_data.backup
Back in pgAdmin :
clic droit sur la base “qgep_prod”
Cliquer sur Restore
Charger votre téléchargement de qgep_vx.y.z_structure_and_demo_data.backup
Cliquer dans l’onglet “Restore Options” et cocher ces options
Cliquer sur Restore
Check whether in Message window Restoring backup on the server is successfully completed.
Note
If the Restore is failed and the detail reads something like « pg_restore: [archiver] unsupported version (1.13) in file header » or in German « pg_restore: [Archivierer] nicht unterstützte Version (1.13) im Dateikopf » try updating your PostgreSQL, see https://stackoverflow.com/questions/49064209/getting-archiver-unsupported-version-1-13-in-file-header-when-running-pg-r
Fermer la fenêtre restauration.
Clic-droit sur la base de données et cliquer sur Rafraîchir
Propably you want to rename the database: Right click the database, click Properties… and rename the database.
There are now 7 schemas in the database (public, qgep_import, qgep_network, qgep_swmm, qgep_od, qgep_sys, qgep_vl)
2.3.1.2. Create minimal roles and access
Note
The QGEP roles are defined in the https://github.com/QGEP/datamodel/blob/master/12_0_roles.sql (per cluster) and https://github.com/QGEP/datamodel/blob/master/12_1_roles.sql (per database) files. It is recommended to use these when using QGEP in a production environment.
Copy paste and run the two .sql one after the other in the query editor of pgAdmin4 (Tools > Query Tool).
2.3.1.3. Modèle de données vide
Vous avez également l’option de restaurer le dernier modèle de données vide (sans données de démonstration)
Télécharger le modèle de données en allant sous https://github.com/QGEP/datamodel/releases/latest et en téléchargeant le dernier fichier qgep_vx.y.z_structure_with_value_lists.sql.
Note
If you run the sql in a Requêtes SQL Window, you will get an error. You have to use a BAT-File.
Use a BAT-File like that, to create the database, the extensions and the schemas with valuelist (replace x.y.z with your version):
@echo off set filename="qgep_vx.y.z_structure_with_value_lists.sql" if not exist %filename% ( echo "File %filename% does not exist. Please download the latest datamodel from https://github.com/QGEP/datamodel/releases (structure_with_value_lists.sql) and adjust filename in this batch file." PAUSE exit -1 ) set /p db="Please enter the database name? (e.g. qgep_community) " set /p password="Please enter the password for user postgres? " set port=5432 set PATH=%PATH%;C:\Program Files\PostgreSQL\12\bin set PGPASSWORD=%password% createdb -U postgres -p %port% %db% psql -U postgres -h localhost -p %port% -d %db% -f %filename% psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA public TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA qgep_vl TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA qgep_od TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA qgep_import TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA qgep_swmm TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA qgep_sys TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA qgep_od TO ""qgep"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA qgep_swmm TO ""qgep"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA qgep_import TO ""qgep"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT ON ALL TABLES IN SCHEMA qgep_vl TO ""qgep"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT ON ALL TABLES IN SCHEMA qgep_sys TO ""qgep"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON ALL SEQUENCES IN SCHEMA qgep_od TO ""qgep""" psql -U postgres -h localhost -p %port% -d %db% -c "REFRESH MATERIALIZED VIEW qgep_od.vw_network_node" psql -U postgres -h localhost -p %port% -d %db% -c "REFRESH MATERIALIZED VIEW qgep_od.vw_network_segment" PAUSE
Note
Vous êtes libre de choisir le nom de la base de données.
Update privileges for the qgep_od, qgep_sys, qgep_vl, qgep_network, qgep_import, qgep_swmm schema as described in the chapter Create minimal roles and access.
2.3.1.4. Générer le modèle de données sous Linux
Vous pouvez également générer le modèle de données sous Linux.
Télécharger le modèle de données:
git clone https://github.com/QGEP/datamodel cd datamodel
Setup the
pg_service.conf
file and add thepg_qgep
service as in the Linux/macOS pg_service section.Créer la base de données
psql -U postgres -c 'CREATE DATABASE qgep;'
Lancer le script de generation:
./scripts/db_setup.sh
Si vous souhaitez utiliser un SRID différend, vous devrez utiliser l’option -s
. Par exemple, lancer ./scripts/db_setup.sh -s 2056
pour 2056 SRID.
Si vous avez déjà un modèle de données et désirez forcer la régénération du modèle, vous pouvez également utiliser l’option -f
: ./scripts/db_setup.sh -f
.
Vous pouvez utiliser l’option -r
pour ajouter des rôles (qgep_viewer
, qgep_user
, qgep_manager
, qgep_sysadmin
).
Viewer: Peut consulter les tables et les vues.
Utilisateur: Peut éditer les données
Gestionnaire: Peut éditer les données et les listes de valeurs.
Admin: Administrateur base de données