====== Sauvegarde des données de la base postgis ====== ==== Sauvegarde avec pg_dump ==== [[http://www.postgresql.org/docs/current/static/app-pgdump.html|pg_dump]] * pg_dump -Fc nom_base -h localhost -U nom_utilisateur -f nom_fichier.backup ==== Restauration avec pg_restore ==== [[http://www.postgresql.org/docs/current/static/app-pgrestore.html|pg_restore]] * l'option -Fc (format custom) nous est utile afin de lister et trier si nécessaire les objets à restaurer. On peut ainsi ne pas souhaiter restaurer les objets de postgis, pour installer la bdd sur une version récente * l'option -l permet de créer la liste des objets à restaure (regiriger la sortie ver le fichier de son choix : > ma_liste.txt) et n'effectue pas de restauration * l'option -L ma_liste.txt effectue la restauration des objets correspondants aux lignes non commentées * l'option -1 permet d'effectuer la restauration au sein d'une transaction * l'option -s ne restaure que le schéma * l'option -d ne restaure que les données * l'option --disable-triggers permet de désactiver les contraintes avant insertion et de les remettre en œuvre après ==== Création de la liste des objets composant le dump ==== Pour créer cette liste : utiliser la commande suivante : * pg_restore -l ~/nom_fichier.backup>~/liste_objets.txt L'édition de cette liste donne ceci (une sélection des lignes à été faite pour montrer les différents types d'objet listés): [...] 6; 2615 2200 SCHEMA - public dba 4255; 0 0 COMMENT - SCHEMA public dba 4256; 0 0 ACL - public dba 1636; 2612 138574 PROCEDURAL LANGUAGE - plpgsql dba 976; 0 0 SHELL TYPE public geometry dba 2848; 1259 139344 TABLE public point_flore dba 2849; 1259 139353 VIEW public affiche_point_flore dba 4260; 0 0 COMMENT public TABLE amenagements dba 3149; 1259 207233 SEQUENCE public bati_isole_2006_gid_seq dba 4261; 0 0 SEQUENCE SET public bati_isole_2006_gid_seq dba 4267; 0 0 ACL public biblio_concerne_site dba 682; 1255 140572 FUNCTION public cen_nomme_auteur_ese(integer) dba 1639; 1255 138849 AGGREGATE public accum(geometry) dba 2363; 2617 138727 OPERATOR public &< dba 3619; 2605 139045 CAST pg_catalog CAST (public.box2d AS public.box3d) 4175; 0 139563 TABLE DATA public taxon_vegetal_indique_habitat dba 3752; 2606 205914 CONSTRAINT public amenagements_pkey dba 3926; 2606 205976 CONSTRAINT public pk_commune dba 3750; 1259 206173 INDEX public amenagements_geometrie_gist dba 3922; 1259 206178 INDEX public commune_geometrie_gist dba 3929; 1259 206190 INDEX public in_id_structure dba 4111; 2606 206272 FK CONSTRAINT public code_habitat_ref_habitat dba [...] Dans un éditeur de texte, on va pouvoir commenter les lignes correspondant aux objets que l'on ne veut pas restaurer. On va aussi pouvoir ordonner ces lignes. Par exemple, je souhaite restaurer sur une nouvelle version de postgis. Je vais commenter tout ce que postgis va créer dans la base : * le language pl/pgsql nécessaire à l'installation de postgis * les types de données * les aggregats * les opérateurs * les fonctions * les cast * ... sans pour autant commenter certains les objets que j'aurai moi-même créé et préfixé (cas des fonctions par exemple). ==== Restauration de la base en tenant compte de cette liste d'objets à restaurer ==== * pg_restore -d -s -h localhost -U dba -d sicen -L liste_objets.txt -1 nom_fichier.backup