Wir empfehlen, den Vorgang zu testen, da dies etwas ist, das wir nicht unterstützen. Wahrscheinlich musst du nur das Upgrade ausführen, und dann sollte alles in Ordnung sein.
Ich habe gerade PostgreSQL 18 für eine Standardinstallation und eine Dual-Container-Konfiguration durchgeführt, und zwar ohne jegliche Probleme. Nochmal vielen Dank an @chrisr und das Team für die einfachen Anleitungen.
Für eine Dual-Container-Konfiguration hinter dem Cloudflare CDN mit R2-Upload-/Backup-Buckets waren die von mir verwendeten Schritte wie folgt:
Schritt 1: Festplatte bereinigen
# Alle ungenutzten Docker-Daten löschen
docker system prune -a -f
# Alte Logs und Apt-Cache löschen
journalctl --vacuum-time=2d
apt-get clean
apt-get autoremove -y
# Datenbankgröße prüfen
du -sh /var/discourse/shared/data/postgres_data
# Verfügbaren freien Speicherplatz prüfen
df -h -x tmpfs -x devtmpfs
Schritt 2: Wartung & Backup
- Bearbeite eine Cloudflare-Wartungsseite, sodass dort „Systemwartung/Aktualisierung, 15–20 Minuten“ steht, und setze einen Neuladungstimer (es wird vielleicht nicht so lange dauern, aber besser sicher als leid!). Aktiviere eine Cloudflare-Worker-Route, um die Wartungsseite anzuzeigen.
- Lege ein Backup über die Kommandozeile an:
cd /var/discourse
./launcher enter web_only
discourse backup
exit
- Melde dich im Cloudflare R2-Dashboard an und überprüfe den Backup-Ordner, um sicherzustellen, dass die Backup-Datei erfolgreich hochgeladen wurde.
Schritt 3: Sicherer Shutdown
- Stoppe zuerst den Web-Container, um alle aktiven Verbindungen zu beenden, und stoppe dann den Datenbank-Container:
cd /var/discourse
./launcher stop web_only
./launcher stop data
- Überprüfe, ob PostgreSQL ordnungsgemäß heruntergefahren wurde:
tail -n 20 shared/data/log/var-log/postgres/current
Schritt 4: Upgrade-Rebuilds
Führe die folgenden Befehle in dieser Reihenfolge aus:
./launcher rebuild data # PostgreSQL 18 dumpen, migrieren und wiederherstellen
./launcher rebuild data # Datenbank-Container neu aufbauen
./launcher rebuild web_only # Web-App neu aufbauen
Schritt 5: Optimierung & Bereinigung
- Generiere die fehlenden pg18-Tabellenstatistiken, da das Forum sonst langsamer als normal sein wird:
docker exec -u postgres data /usr/lib/postgresql/18/bin/vacuumdb -d discourse --analyze-in-stages
- Teste das Forum, um sicherzustellen, dass alles funktioniert – die Wartungsseite sollte jetzt nicht mehr geladen werden, falls du einen Neuladungstimer dafür eingestellt hast.
- Entferne die Cloudflare-Worker-Route zur Wartungsseite (wir wollen das Limit von 100.000 Aufrufen pro Tag nicht erreichen!).
- Lösche die alten pg18-Daten, um diesen Speicherplatz wieder freizugeben:
rm -fr /var/discourse/shared/data/postgres_data_old/
Fertig!
![]()
3 „Gefällt mir“
