Etat initial
PostgreSQL : PostgreSQL 8.4.3 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 32-bit
PostGIS : POSTGIS= »1.5.0″ GEOS= »3.2.0-CAPI-1.6.0″ PROJ= »Rel. 4.6.1, 21 August 2008″ LIBXML= »2.6.26″ USE_STATS
Etat attendu
PostgreSQL : 9.2.x
PostGIS : 2.x
Documents utilisés :
- http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
- http://trac.osgeo.org/postgis/wiki/UsersWikiPostGIS20CentOS6pgdg
- http://postgis.refractions.net/documentation/manual-2.0/postgis_installation.html#hard_upgrade
Démarche
Sauvegarde des bases de données désirées de l’ancien serveur
on monte le répertoire de sauvagarde
mount -t cifs //192.168.1.240/sauvegardes -o rw,username=admin,password=cen122009,noperm /mnt/svg/
on sauvegarde les bases une à une
pg_dump -h localhost -p 5432 -U dba -Fc -N temp -b -v -f « /mnt/svg/sicen_2013_01_14.backup » sicen
on sauvegarde les rôles
pg_dumpall -g > roles.sql
on monte le répertoire de sauvegarde sur le nouveau serveur
mount -t cifs //192.168.1.240/sauvegardes -o rw,username=admin,password=cen122009,noperm /mnt/svg/
on crée la nouvelle base de données avec PostGIS
on recrée les rôles en utilsant rôles.sql
on lance le script de restauration (hard upgrade)
perl /usr/pgsql-9.2/share/contrib/postgis-2.0/postgis_restore.pl « /home/admin/Documents/sicen_2013_01_14.backup » | psql -h 127.0.0.1 -p 5432 -U dba newdb 2> erreurs.txt
Les erreurs remontées sont dûes à des fonctions qui n’existent plus dans cette version de PostGIS ( cas de area2d(geometry), buffer(geometry, double precision) et centroid(geometry) dont que nous avons recréées à partir des définitions SQL de leurs version modernes (ST_buffer(geometry, double precision)…)