Nach oben: Verwalten eines Guix System [Inhalt][Index]
Weil der Vorgabewert des Pakets mit postgres in postgresql-configuration jetzt als veraltet gilt (siehe b93434e656eba4260df82158a96c295000d3ff44), ist eine Systemaktualisierung nur nach einigen manuellen Schritten möglich. Hier geben wir einen Überblick.
Beachten Sie, wir beschreiben hier eine direkte Methode, die für kleine
Datenmengen geeignet ist. Für große Datenbanken benutzen Sie eventuell
besser pg_upgrade
. Aber auch dann müssen Sie den Dienst und die
Systemaktualisierung wie hier beschrieben handhaben.
Verhindern Sie somit, dass der Dienst neu startet und fehlschlägt, nachdem rekonfiguriert wird.
sudo herd stop cuirass && sudo herd disable cuirass
sudo su - postgres -s /bin/sh -c pg_dumpall > /tmp/pg.dump
Je nachdem, ob der Postgres-Dienst bei Ihnen implizit definiert ist (als
Abhängigkeit über den Cuirass-Dienst) oder in einem eigenen Eintrag der
(services)
-Eigenschaft in Ihrem Betriebssystem deklariert ist, müssen
Sie ihn entweder hinzufügen oder die bestehende Konfiguration ändern, damit
sie Ihrer gewünschten Versionsänderung entspricht.
Achten Sie darauf, nicht auf einen Schlag zu postgres-16 zu aktualisieren – aus ungeklärten Gründen mag der Cuirass-Dienst das nicht gerne. Nach einer kaputten Aktualisierung auf Postgres 16 musste ich die betroffenen Dateien löschen und neu initialisieren.
(service postgresql-service-type
(postgresql-configuration
(postgresql (@ (gnu packages databases) postgresql-15))))
Anmerkung: Wenn es Ihnen passiert ist, dass Sie den Text hier ignoriert haben und irgendwie blind den Beispielen gefolgt sind und doch auf 16 aktualisiert haben, ist hier beschrieben, wie Sie den Zustand zurücksetzen:
Nach Vorgabeeinstellung wohnen diese in /var/lib/postgres/data.
sudo su - postgres -s /bin/sh -c 'pg_ctl init -D /var/lib/postgres/data'
sudo guix system reconfigure path/to/your/altered/config.scm
sudo su - postgres -s /bin/sh -c 'psql -d postgres -f /tmp/pg.dump'
sudo herd enable cuirass sudo herd start cuirass
Nach oben: Verwalten eines Guix System [Inhalt][Index]