Доставил хлопот перенос вложений. С этим пришлось повозиться, потому что переносить пришлось большой объем, более 70 Гб, и вложения прогонялись постепенно по мере синхронизации каналов. На фоне этого рядом ходила еще одна проблема – при миграции данных приложение может упасть, поэтому надо понимать, какие сообщения ты уже перенес, а какие нет, чтобы при повторной обработке они не задублировались в основном канале Mattermost. Чтобы решить эти проблемы, я добавил таблицы кэширования. Они содержали информацию, что сущность (сообщение, вложение) с неким идентификатором из Slack уже было перенесено и указывала его идентификатор в Mattermost. Утилита это читала и могла перезаписать данные, не создавая повторную запись и лишние дубликаты. В зависимости от количества файлов один канал переносился от 30 секунд до 20 минут. Не быстро – но и не критично и вполне решаемо, как и миграция в целом.