solectrus / hosting

Step-by-stypes guides for installing and hosting Solectrus
9 stars 4 forks source link

Update aus Postgres 16 nicht automatisch #35

Closed Robbe64 closed 11 months ago

Robbe64 commented 11 months ago

Ich habe aus Portainer heraus direkt über Git auf /docker-compose.yml verwiesen. Dann wollte ich updaten und es wurde somit automatisch auf postgres 16 geändert. Nun startet jedoch die DB nicht mehr: "The data directory was initialized by PostgreSQL version 15, which is not compatible with this version 16.0" Es müsste also offenbar manuell aktualisiert werden. Das ist jetzt nicht so komfortabel ;)

ledermann commented 11 months ago

Bei PostgreSQL ist es leider so, dass nicht automatisch auf ein neues Major-Release aktualisiert werden kann. Es ist dann grundsätzlich ein Backup/Restore notwendig. Ja, das ist aufwändig und überhaupt nicht komfortabel.

Wer also einmal mit PostgreSQL 15 angefangen hat, sollte dabei bleiben und nicht auf das kürzlich erschienene PostgreSQL 16 aktualisieren - es sein denn, man weiß wirklich, was man tut und kann mit pg_dump und psql umgehen. Bei PostgreSQL werden alte Version auch jahrelang gepflegt, man bekommt also weiterhin Minor-Updates.

Das docker-compose.yml der Installationsanleitung habe ich kürzlich auf PostgreSQL 16 aktualisiert, das richtet sich aber nur an Neuinstallationen.

Beim Einsatz von Portainer und der Build-Methode "Repository" schlage ich vor, die Option GitOps updates zu deaktivieren, damit nicht ungewollt der Stack aktualisiert wird.

In jedem Fall muss bei dir nun manuell das PostgreSQL-Image auf Version 15 zurückgestellt werden, also auf diesen Eintrag:

image: postgres:15-alpine

Dann wird die Datenbank auch wieder starten, es gehen keine Daten verloren.

Robbe64 commented 11 months ago

Ok, Danke!