# Scenario upgrade umap
Le principe:
- passage de umap en readonly qui continue en prod
- création d'un clone le stockage ZFS et d'une copie du conteneur proxmox en changeant IP et mac addr
- mises à jour d'Ubuntu, postgres et umap dans le clone
- test sur dev.umap.openstreetmap.fr
- bascule prod vers le clone
**umap sera en readonly pendant une durée limitée (1h ?)**
## Mise à jour du clone
Etapes:
1. faire un dump de la base umap: pg_dump umap -F C -Z 9 -v > umap.dump
2. postgis 2.4 pose problème, on le supprime tout comme les packages obsoletes (comme postgresql 9.6)
3. do-release-upgrade x2 pour passer à focal (20.04) puis jammy (22.04)
4. install de postgresql-15 à la place des anciennes version 10 et 12
5. cr&ation du user umap et de sa database
6. pg_restore
7. mise à jour du code d'umap
8. redémarrage uwsgi
osm144:
passage de umap en readonly
osm26:
```
zfs snapshot local-zfs/subvol-144-disk-0@upgrade
zfs clone local-zfs/subvol-144-disk-0@upgrade local-zfs/subvol-999-disk-0
```
osm999 (clone):
```
pct enter 999
# dump de la base postgresql
su postgres -c "pg_dump umap -F c -Z 9 -v > /var/lib/postgresql/umap.dump"
apt update ; apt -y dist-upgrade ; apt -y autoremove
do-release-upgrade
reboot
```
reboot, puis on continue avec focal > jammy
```
pct enter 999
do-release-upgrade
reboot
```
dernier un reboot pour être en jammy (22.04)
```
# suppression des anciens cluster
pg_dropcluster 12 main --stop
pg_dropcluster 10 main --stop
# repo postgresql.org pour installation PG15
sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt update
apt remove -y postgresql* postgis*
apt install -y postgresql-15-postgis-3-scripts
apt autoremove -y
# création du user umap de sa database puis import du dump
su postgres -c "createuser umap; createdb umap -O umap"
su postgres -c "pg_restore -d umap -v /var/lib/postgresql/umap.dump"
su postgres -c "psql umap -c 'alter database umap owner to umap; grant all ON database umap to umap; grant all on schema public to umap;'"
# lib nécessaires pour python / pip install
apt install -y python-is-python3 libpq-dev libturbojpeg0-dev
cd /srv/umap/
mv venv venv_old
su umap -c "python -m venv /srv/umap/venv"
su umap -c "/srv/umap/venv/bin/pip install umap-project"
service uwsgi restart
```
Tests sur https://dev.umap.openstreetmap.fr/
Si ok...