Снова привет! Я отложил последнюю миграцию, о которой писал, но вернулся к ней. Ситуация стала немного более срочной из-за проблем на (устаревшем) хосте, где изначально размещалась установка.
Контекст: Во время миграции на новый экземпляр я решил сразу же перейти на внешние экземпляры PostgreSQL и Redis. Настройка чистой установки прошла успешно, и я планирую выполнить миграцию с помощью команды резервного копирования и восстановления из командной строки. В данный момент я просто тестирую рабочий процесс и проверяю, что восстановленный экземпляр работает как ожидалось, прежде чем перевести исходный экземпляр в режим только для чтения и продолжить, особенно учитывая, что это довольно старый и большой экземпляр, который я мигрирую.
Старый экземпляр: простая настройка самостоятельного хостинга, один экземпляр со стандартными встроенными PostgreSQL и Redis.
Новый экземпляр: тот же app.yml, но с внешними управляемыми экземплярами PostgreSQL и Redis (DigitalOcean).
Команда восстановления кажется успешной в течение довольно долгого времени. Затем, после значительного промежутка времени, я неизменно получаю ошибку, которая выглядит так (включая некоторые успешные логи для контекста):
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'
Это происходило в разных точках копирования при различных запусках, поэтому, насколько я могу судить, это не связано с самой миграцией. Учитывая, что соединения с БД явно работают, я считаю, что можно с уверенностью предположить, что это связано с особенностями работы DigitalOcean, но я надеюсь, что кто-то из присутствующих здесь уже сталкивался с подобным и сможет указать мне правильное направление.