Ops: upgrade PostgreSQL 16 → 18
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 22/100
Direzione di ricerca
Start with the image tags in docker-compose.yaml and docker-compose.test.yaml, which pin postgres:17-alpine, and the Portainer stack in deployment/portainer/docker-compose.portainer.yaml. Confirm the production version and extensions on the host, then rehearse the 16-to-18 upgrade on a staging copy and run manage.py migrate plus the test suite. Done means production reports PostgreSQL 18.x and the API, Celery and Channels paths work; this needs production access, so it is not a good first task.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Goal
Upgrade production (and align dev) PostgreSQL from 16 to 18 with minimal downtime and a verified rollback path.
Context
- Production currently on PostgreSQL 16 (operator-confirmed).
- In-repo dev compose uses
postgres:17-alpine(docker-compose.yaml,docker-compose.test.yaml) — consider aligning dev/test to 18 after prod upgrade. - Portainer deployment:
deployment/portainer/docker-compose.portainer.yaml— app services onpg_net; Postgres may be a separate stack/volume. - Django 4.x/5.x supports PostgreSQL 14+; confirm no extension/version blockers (
pg_trgm, etc.).
Suggested approach
- Prerequisite: automated backups in place (see separate backup ticket) + fresh manual dump before upgrade.
- Staging: upgrade staging clone 16→18; run full test suite + smoke (migrate, ingest, admin).
- Production:
pg_upgradeor dump/restore — pick based on data size and downtime budget. - Update image tags / Portainer env / any CI test DB image to
postgres:18-alpine(or pinned minor). - Post-upgrade:
VACUUM/ analyze, verify extensions, connection pooling (if any).
Scope
- Inventory PG version, extensions, and data directory layout on prod host
- Document upgrade runbook (steps, estimated downtime, rollback = restore from backup)
- Execute on staging; record issues
- Production maintenance window + upgrade
- Bump dev/test compose images to 18 for parity
- Update deployment docs
Risks
- Major version jump (16→18): use PostgreSQL upgrade docs; test
pg_upgradeon copy first. - Meshflow migration history: run
manage.py migrateafter upgrade on staging.
Acceptance
- Production
SELECT version();reports PostgreSQL 18.x - Meshflow API, Celery workers, and Channels/WebSocket paths operate normally post-upgrade
- Dev compose references Postgres 18 (or documents intentional lag)
- Lingua principale
- Python
- Stelle
- 1
- Fork
- 0
- Merge medio
- 1g 20h
- PR unite (30g)
- 5
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pskillen/meshflow-api
-
enhancement meshtastic-2.8
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
pskillen/meshflow-api#459 ·
-
enhancement meshtastic-2.8
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
pskillen/meshflow-api#465 ·
-
enhancement meshtastic-2.8
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
pskillen/meshflow-api#464 ·
-
enhancement meshtastic-2.8
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
pskillen/meshflow-api#463 ·
-
[2.8] Handle missing rxTimeApertaenhancement meshtastic-2.8
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
pskillen/meshflow-api#462 ·
Tutte le issue di pskillen/meshflow-api
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/markitdown#2820 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
yt-project/yt#5624 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NousResearch/hermes-agent#148376 ·
I maintainer di solito rispondono entro 1 giorno