Hallo nochmal! Ich habe die letzte Migration, über die ich gepostet habe, zurückgestellt, aber wieder aufgenommen. Sie wurde mit einigen Problemen auf dem (veralteten) Host, auf dem die ursprüngliche Installation lief, etwas dringlicher.
Kontext: Während der Migration zu einer neuen Instanz habe ich beschlossen, zu einer externen PG- und Redis-Instanz zu migrieren. Die Einrichtung der frischen Installation verlief reibungslos, und ich plane, für die Migration selbst ein Backup + Wiederherstellung über die Befehlszeile durchzuführen. Derzeit versuche ich, den Workflow zu testen und sicherzustellen, dass die neu wiederhergestellte Instanz wie erwartet funktioniert, bevor ich die ursprüngliche Instanz auf schreibgeschützt setze und fortfahre, insbesondere da es sich um eine ziemlich alte/große Instanz handelt, die ich migriere.
Alte Instanz: Einfache Self-Hosting-Einrichtung, eine Instanz mit der Standard-Kollokation von PG, Postgres, Redis.
Neue Instanz: Gleiche app.yml, aber mit externem, verwaltetem PG + Redis (DigitalOcean).
Der Wiederherstellungsbefehl scheint eine ganze Weile gut zu funktionieren. Dann, nach beträchtlicher Zeit, erhalte ich durchweg eine Fehlermeldung, die (einschließlich einiger Erfolgsprotokolle als Kontext) wie folgt aussieht:
COPY 99820
COPY 3216770
COPY 3251307
SSL connection has been closed unexpectedly
FATAL: terminating connection due to administrator command
CONTEXT: COPY post_timings, line 63404000: "8311 4897 1816 6999"
SSL connection has been closed unexpectedly
FATAL: terminating connection due to administrator command
CONTEXT: COPY post_timings, line 63404000: "8311 4897 1816 6999"
invalid socket
connection to server was lost
EXCEPTION: psql failed: connection to server was lost
/var/www/discourse/lib/backup_restore/database_restorer.rb:95:in `restore_dump'
Es ist bei verschiedenen spezifischen Kopierpunkten bei verschiedenen Durchläufen passiert, daher ist dies nach meinem Dafürhalten nichts Spezifisches für die Migration selbst. Da die DB-Verbindungen eindeutig funktionieren, gehe ich davon aus, dass dies etwas mit dem Verhalten von DigitalOcean zu tun hat, aber ich hoffe, dass jemand anderes hier etwas Ähnliches gesehen hat und mich in die richtige Richtung weisen kann.