# Postgres

## Changement de version majeure

**Sauvegarder la base de données avant la mise à jour pour éviter des incompatibilité avec des modules**

1. Dump la base de donnée : `postgres@alshain $ pg_dumpall > backup`
2. Stoper le service `root@alshain # systemctl stop postgresql`
3. Sauvegarde l'ancien répertoire de postgres `root@alshain # mv /var/lib/pgsql{,.old}`
4. Recréer la base de données
   ```
   root@alshain # mkdir /var/lib/pgsql
   root@alshain # chown postgres:postgres /var/lib/pgsql
   root@alshain # sudo -i postgres
   postgres@alshain $ postgres -D /var/lib/pgsql/data
   ```

5. Importer les données `postgres@alshain $ psql -d postgres -f ../pgsql.old/backup`
6. Relancer le service `rooot@alshain # systemctl start postgresql`

Sinon sans backup préalable de la DB:
1. Mounter une sauvegarde du serveur :
   ```
   root@alshain # borgmatic mount --archive latest --mount-point /mnt
   ```
3. Récupéré les lib manquantes des modules (et leurs dépendances):
   ```
   root@alshain # cp /mnt/usr/lib64/pgsql/*.so /usr/lib64/pgsql/postgresql-14/lib/
   root@alshain # cp /mnt/usr/lib64/libproj.so.* /usr/lib64/
   ```
4. Lancer l'upgrade de postgres
   ```
   root@alshain # sudo -iu postgres postgresql-setup --upgrade
   ```