-
Notifications
You must be signed in to change notification settings - Fork 0
PostgreSQL
En cas de problème, il est possible de remplacer rapidement les couches Segments et Compositions de la base données.
- Dans Pgadmin4 ou dans Qgis > Explorateur > PostgreSQL > "nom_de_la_BD" > Clique-droit > Éxécuter le SQL
TRUNCATE TABLE compositions, segments;
ALTER TABLE compositions
DISABLE TRIGGER ALL;
ALTER TABLE segments
DISABLE TRIGGER ALL;
- Dans un terminal :
ogr2ogr -f PostgreSQL "PG:user=postgres password=postgres dbname=test" /chemin/vers/Routes/Pays/Pays_Compositions.geojson &&
ogr2ogr -f PostgreSQL "PG:user=postgres password=postgres dbname=test" /chemin/vers/Routes/Pays/Pays_Segments.geojson
❗Bien penser à changer le nom de la base de données ainsi que les chemins vers les couches
- Dans Pgadmin4 ou Qgis :
-- Enable again the triggers
ALTER TABLE compositions
ENABLE TRIGGER ALL;
ALTER TABLE segments
ENABLE TRIGGER ALL;
-- Insert a first time geometry into compositions layer.
WITH
a AS (SELECT compositions.id, st_collect(segments.geom) AS geom
FROM compositions, UNNEST(segments) AS iti
JOIN segments ON segments.id = iti
GROUP BY compositions.id)
UPDATE compositions
SET geom = a.geom
FROM a
WHERE a.id = compositions.id;
Avec un script bash :
-
Clique-droit sur /Codes/update_data_from_backup.bash > Propriétés > Exécutable comme programme
-
Ouvrir le script et vérifier les deux premières variables :
db="nom_de_la_base_de_données"
dossier="/chemin/vers/backup"
Pour l'exécuter :
- Clique-droit > Exécuter comme un programme.
- Arrêter la base de données :
sudo systemctl stop postgresql
- Copier la base de données :
sudo cp -R /var/lib/postgresql/16/main /vers/où/copier
sudo cp -R /chemin/du/backup /var/lib/postgresql/16/
- Changer le propriétaire :
sudo chown -R postgres:postgres /var/lib/postgresql/16/main
- Redémarrer le service :
sudo systemctl start postgresql
- L'exporter :
pg_dump -U postgres gpx > /chemin/où/sauvegarder/sauvegarde_table_xxx.sql
- La restaurer :
psql -h localhost -U postgres -d gpx -f /chemin/où/sauvegarder/sauvegarde_table_xxx.sql