2.7.2. Mise à jour 'complète'

Par mise à jour 'complète' nous entendons une sauvegarde/rechargement complet des base de données ayant PostGIS d'activé. Vous avez besoin d'une mise à jour 'complète' lorsque le stockage des objets internes de PostGIS change ou lorsqu'une mise à jour 'légère' n'est pas possible.

L'annexe des notes de sorties de versions PostGIS signale pour chaque version si vous devez désinstaller/réinstaller (mise à jour complète) lors du changement de version.

PostGIS fournit un utilitaire pour restaurer une sauvegarde créée avec la commande pg_dump -Fc. Il est expérimental, donc rediriger sa sortie standard dans un fichier sera utile en cas de problèmes. La procédure est la suivante :

Créez une sauvegarde au "format-particulier" de la base que vous souhaitez mettre à jour (appelons là "ancienne_base")

$ pg_dump -Fc ancienne_base > ancienne_base.dump

Restaurez la sauvegarde pour mettre à jour postgis dans une nouvelle base de données. La nouvelle base n'a pas à exister. postgis_restore prend en charge les paramètres passés à createdb après le nom du fichier de sauvegarde et cela peut être utilisé, par exemple, si vous souhaitez utiliser un encodage de caractères différent de celui utilisé par défaut par votre serveur PostgreSQL. Appelons là "nouvelle_base" et utilisons l'encodage de caractères UNICODE :

$ sh utils/postgis_restore.pl lwpostgis.sql nouvelle_base ancienne_base.dump > restauration.log

Vérifiez que tous les objets de la sauvegarde ont réellement besoin d'être restaurés à partir de la sauvegarde et n'entre pas en conflit avec ceux définis dans lwpostgis.sql

$ grep ^KEEPING restauration.log | less

Si vous mettez à jour PostgreSQL d'une version < 8.0 à une version >= 8.0 vous devrez sans doute supprimer les colones attrelid, carattnum et stats de la table geometry_columns, qui ne sont plus nécessaires. Les conserver ne pose pas de problèmes. LES SUPPRIMER ALORS QU'ON EN A BESOIN POSERA UN PROBLÈME !!!

$ psql nouvelle_base -c "ALTER TABLE geometry_columns DROP attrelid"
$ psql nouvelle_base -c "ALTER TABLE geometry_columns DROP varattnum"
$ psql nouvelle_base -c "ALTER TABLE geometry_columns DROP stats"

La table spatial_ref_sys est restaurée à partir de la sauvegarde, pour être sur que vos ajouts particuliers seront conservés, mais ceux fournis pourraient contenir des modifications et donc vous devriez sauvegarder vos modifications, supprimer la table et insérer la nouvelle. Si vous aviez fait des ajouts, nous supposons que vous savez comment les sauvegarder avant la mise à jour de la table. La remplacer par la nouvelle se fait de la manière suivante :

$ psql nouvelle_base
nouvelle_base=> delete from spatial_ref_sys;
DROP
nouvelle_base=> \i spatial_ref_sys.sql

Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 3840 lectures

Posté par rédacteurs le 6 Avril, 2006 - 23:38.

Accéder aux archives

« Novembre 2024  
Lun Mar Mer Jeu Ven Sam Dim
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Ouverture de session

Qui est en ligne

Il y a actuellement 1 utilisateur et 84 invités en ligne.
Locations of visitors to this page
Drupal Top Sites - Ultimate Drupal Exposure