Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierArthur Hoaro's Links

GitHub - tianon/docker-postgres-upgrade: a PoC for using "pg_upgrade" inside Docker

4 octobre 2021 à 11:46

Super pratique cet outil pour faire une montée de version de PostgreSQL sans se prendre (trop) la tête.

J'avais un vieux container Docker qui tournait en version 9.4 pour FreshRSS. Pour la faire courte, j'ai eu des problèmes de certificat SSL au 1er octobre pour récupérer les flux RSS, j'ai voulu faire une montée de version de FreshRSS, et je me suis rendu compte que j'avais des erreurs SQL parce que la version de Postgres n'est pas supportée.

Du coup, avec cet outil, j'ai pu :

  1. copier le dossier de données
  2. faire tourner le script pour passer de 9.4 à 9.6
  3. remplacer le dossier de données
  4. on recrée le container PostgreSQL dans la bonne version
  5. ???
  6. profit

En gros ça donne

# préparation
OLD=9.4
NEW=9.6
mkdir $OLD
cp /data/postgresql-data ./9.4/data

# ici j'ai du corriger un soucis parce qu'il considérait que le serveur n'avait pas été arrêté correctement
rm 9.4/data/postmaster.pid
docker run -it --rm -v `pwd`/:/var/lib/postgresql/ tianon/postgres-upgrade:9.4-to-12 bash
> su postgres
> $PGBINOLD/pg_ctl start -w -D $PGDATAOLD
> $PGBINOLD/pg_ctl stop -w -D $PGDATAOLD
> exit

# migration
docker run --rm -v "$PWD":/var/lib/postgresql "tianon/postgres-upgrade:$OLD-to-$NEW" --link

# remplacement
mv /data/postgresql-data /data/postgresql-data.sav
cp 9.6/data /data/postgresql-data

Permalink
❌
❌