Stimmt, aber wir zielen auf einen einfachen, transparenten Upgrade-Mechanismus ab. Beide Ansätze haben ihre Vorzüge.
Ich würde sagen, mach, was dir am besten gefällt, und scheue dich nicht, die Vorlagen in discourse_docker nach deinen Anforderungen anzupassen. Offensichtlich ist der Schlüssel, zuerst zu testen und einen Rollback-Plan zu haben.
Auf unserer gehosteten Plattform beabsichtigen wir, vor dem Aktivieren dieser Funktion weitere Tests und Benchmarks durchzuführen, und daher habe ich sie auch in discourse_docker deaktiviert, um die Konfiguration abzugleichen. Es ist jedoch nicht zwingend erforderlich, sie zu deaktivieren (intern verwenden wir nur den Web-Container-Teil von discourse_docker), und ich wäre nicht dagegen, sie zu aktivieren.
Ein potenzielles Problem ist, dass pg_upgrade nicht funktioniert, wenn die alten und neuen Datenverzeichnisse unterschiedliche Checksummen-Einstellungen haben. Der Prozess müsste so ablaufen: Den PG15-Server herunterfahren, pg_upgrade ausführen, um ihn ohne Checksummen zu PG18 zu konvertieren, pg_checksums ausführen, um die Checksummen zu aktivieren, und dann PG18 starten. Dies ist kein Problem bei einer Dump- und Wiederherstellungsprozedur (wie bei diesem Upgrade), aber etwas, auf das man achten sollte.
Beachte, dass Daten-Checksummen seit Postgres 9.3 verfügbar sind, aber bis jetzt standardmäßig deaktiviert waren. Postgres 19 wird auch die Möglichkeit enthalten, sie online zu aktivieren/deaktivieren.
Derzeit nicht, nein. Die meisten Discourse-Funktionen verwenden den Rails PostgreSQL-Adapter, um mit der DB zu kommunizieren, aber Backup/Wiederherstellung verwendet pg_dump und psql im Web-Container. Momentan installieren wir sowohl PG15- als auch PG18-Clients, um Backup/Wiederherstellung mit beiden Versionen zu ermöglichen, aber irgendwann in der Zukunft werden wir PG15 entfernen.
Der treibende Faktor war der Wechsel zum neuen integrierten Lokalisierungsanbieter. Wir arbeiten an einem OS-Upgrade auf unserer gehosteten Plattform und möchten die Kopplung mit glibc aufbrechen.