Skip to content

PostgreSQL

UlysselaGlisse edited this page Oct 12, 2024 · 5 revisions

Remplacer les couches de la base de données :

En cas de problème, il est possible de remplacer rapidement les couches Segments et Compositions de la base données.

Windows

  • 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;

Linux

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.

Sauvegarde et restauration (Linux)

Sauvegarder l'ensemble du serveur :

  • 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

Restaurer :

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

Sauvegarder une base de données :

  • 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

Clone this wiki locally