Before you upgrade
1
Record what you are on
production_pgdata. Keep it stable across upgrades.2
Take a verified backup
A backup is not proven until it restores. Create the archive and confirm PostgreSQL can read its table of contents before you continue. See Back up PostgreSQL.
Upgrade
--wait returning success means the schema is current and both services are healthy.
When you run pinned images instead of building from source, recreate the containers on the new tag with the docker run sequence from Run a published release. The checked in docker-compose.yml builds both applications from source and declares no image, so docker compose pull cannot move it onto a published tag. A supported pull based Compose file arrives with 1.0.0.
Verify the upgrade
Roll back
A migration can make older application code incompatible with the migrated schema. Restoring only the previous image is therefore not a rollback. Restore both.1
Stop the applications
2
Restore the pre upgrade archive
Drop and recreate the database, then restore the archive you took before the upgrade. See Restore PostgreSQL.
3
Start the previous revision
Check out the previous code revision, or set the previous pinned image tag, then bring the stack back up and verify both health URLs.
What does 1.0.0 promise?
1.0.0 promises compatibility for three surfaces throughout the 1.x line. Breaking any of them requires 2.0.0.
Until
1.0.0 is tagged, feature work is frozen and the 0.5.x line carries fixes, tests, measured performance work, behaviour preserving refactors, documentation, packaging, continuous integration and maintenance.
Release Please owns tags, versions and CHANGELOG.md. Read the release notes before every upgrade, because an operator facing change appears in a commit subject or a breaking change footer.