Aus irgendeinen Grund hatte ich den main Ordner einer alten Postgresdatenbank gesichert. Und heute wollte ich mir diese wieder einmal ansehen.
PG_VERSION informierte mich darüber, dass ich es mit der Version 14 zu tun hatte.
Ein echtes Downgraden von Programmen ist, meines Wissen, unter den meisten Linuxderivaten nicht mehr möglich, ein Docker mit einer alten Version laufen zu lassen hingegen schon.
Ich nehme mal an, dass Docker installiert ist.
Dann einfach unter https://hub.docker.com/_/postgres/ die richtige Postgesversion wählen und mit
docker pull postgres:14-alpine
installieren. Ich hatte mich für 14-alpine entschieden. Auf jeden Fall nicht nur ‚postgres‘ schreiben, sonst gibt’s Postgres Version 18.
Leider geht es nur bis 14. Wer älter benötigt, kann sich die Dockerdatei auch selbst bauen. Wie genau das geht, werde ich hier bald behandeln, da ich auch noch ein Backup von Postgesql Version 13 rumliegen habe.
Jetzt kommt es darauf an, wo wir die Daten haben. Ich hatte sie auf einen externen Laufwerk und da ich nur mal rein sehen wollte habe ich sie direkt ein gehangen. Wer seine Daten liebt, macht vorher ein Backup.
Sagen wir die Daten liegen auf:
/media/postgresql/14/main-old
dann erzeugen und starten wir Docker mit
docker run -d --name pg14-restore -e POSTGRES_PASSWORD=supersecret -p 5432:5432 -v /media/postgresql/14/main-old:/var/lib/postgresql/data postgres:14-alpine
Zum starten und stoppen können wir nun den Namen des Containers „pg14-restore“ nehmen. Das Password ist nur für den Container und hat somit keine Auswirkungen auf die Posgresdaten direkt.
zum überprüfen ob Postgres läuft
docker ps
ausführen.
Jetzt mit dem Befehl:
docker exec -it pg14-restore psql -U postgres
oder gleich ein Backup mit
`docker exec -t pg14-restore pg_dumpall -c -U postgres > komplett_backup_$(date +%Y%m%d_%H%M%S).sql`
bzw.
`docker exec -t pg14-restore pg_dumpall -c -U postgres | gzip > komplett_backup_$(date +%Y%m%d_%H%M%S).sql.gz`
erstellen.