Я просто хочу ещё раз подчеркнуть, что флаг --numeric-ids является на 100% обязательным при использовании rsync для переноса данных на новый сервер. Если его не указать, rsync попытается сопоставить имена пользователей между хостами, что изменит владельца файлов внутри Docker. Это приведёт к тому, что вы будете перебирать миллион сообщений об ошибках, чтобы понять, что первая проблема заключалась в отказе Postgres запускаться, поскольку он больше не владеет файлом, который считает своим, а за этим последует целый каскад других проблем (Redis попытается привязаться к TCP-порту, который уже прослушивается, кошки и собаки заживут вместе и т.д.), что затруднит диагностику.
Кроме того, это поистине пугает: резервные копии, создаваемые самим Discourse и запускаемые внутри контейнера Docker, полностью подконтрольного Discourse, могут не работать. При этом о сбоях известно уже годами, и проблема, судя по всему, так и не решена. Именно поэтому я обратился к rsync для миграции на новое оборудование. Rsync справился, и теперь данные хранятся на зеркальной файловой системе ZFS с ежечасными снимками и ежедневной удалённой резервной копией — это отлично… Но я всё же беспокоюсь за всех администраторов, которые полагают, что автоматическая резервная копия от Discourse спасёт их в случае катастрофы, а потом будут в недоумении чесать затылки из-за повреждённых индексов SQL и вспоминать, какие плагины они использовали, когда попытаются её применить.