Импорт: RocketChat → Time
Выгрузка данных из RocketChat в формат Time
Для выгрузки понадобится time-etl-rocketchat
— утилита для выгрузки и конвертации данных из RocketChat в формат Time.
Установка утилиты time-etl-rocketchat
Инструкция по установке:
-
Установить Node.js Version 6.11.0 LTS или выше.
-
Скачать исходники из https://data.tinkoff.ru.
Доступ для скачивания следует запросить у сотрудников Т-Банка. Перейдя по ссылке, нужно зайти в директорию
time-etl-rocketchat
и использовать последнюю версию. -
Установить JS зависимости:
cd time-etl-rocketchat && npm install
-
Сконфигурировать файл
context/config.js
-
Скопировать пример конфигурации
cp context/config.example.rocketchat.js context/config.js
-
Установить
source.uri
— это DSN базы данных MongoDB, которая используется в текущей инсталляции RocketChat. -
Установить
define.ldap_auth_service
— возможные значения: 'ldap', 'gitlab' и может отсутствовать. Если в RocketChat использовать тип авторизации по логину и паролю, то стоит этот параметр оставить пустым. -
Установить
source.uploadsPath
для загруженных файлов (аватарки пользователей и вложения). Опционально. -
Установить
source.customEmojiPath
для кастомных эмоций. Опционально. -
Установить
target.filesPath
для вывода импортируемых данных. Опционально. -
Дополнительные настройки конфигурации. Параметры настройки
define.team
можно будет изменить в Системной консоли Time.define.posts.s3_file_download
— возможность переиспользования s3 бакета из RocketChat в Time, когда файлы по сообщениям не будут скачиваться. Нужно в Time прописать такие же настройки для s3 как в RocketChat.define.posts.fromTs
— выгружаться будут сообщения от этой даты, в этом форматеdefine.posts.maxCount
— выгрузить определенное количество постовdefine.posts.batch_size
— количество параллельных обработок постов, можно уменьшить при высокой нагрузке по CPU при работе скрипта.define.posts.mongodb_batch_size
— количество полученных сообщений из mongoDB за один раз, можно уменьшить при высоком потреблении памяти в mongoDB.define.posts.count_total
— определяет нужно ли подсчитывать общее количество сообщений в базе и выводе информации в консоль.define.directChannels.batch_size
— количество параллельных обработок личных переписок, можно уменьшить при высокой нагрузке по CPU при работе скрипта.define.team.name
— название команды в Time после импорта.define.team.display_name
— название команды Time, которые будут видеть пользователи в UI, после импорта.define.team.description
- описание команды в Timedefine.team.type
— тип команды в Time, возможные значения: I (доступ только по инвайту), O (доступ возможен по регистрации). Рекомендуемое значение Idefine.team.allow_open_invite
— возможность любому участнику присоединиться к команде в Time.
-
Запуск миграции
Запустить скрипт миграции:
npm run start:rocketchat
Загрузка данных
Нужно заархивировать полученный файл, а также директорию с вложениями и аватарками, указанные в config/config.rocketchat.js
, в один zip-архив:
zip -r data.zip data.jsonl files/
Данный архив нужно загрузить в Time. Загрузка данных в Time описана в разделе Загрузка данных.
FAQ
При экспорте данных выполнение скрипта миграции как-то визуализируется в консоли?
Ответ
Нет, такая возможность отсутствует.
Скрипт зависает при выгрузке постов, в консоли ничего нет
Ответ
Проверьте наличие индексов в коллекции rocketchat_message
в MongoDB. Инструкция по получению списка индексов: https://www.mongodb.com/docs/v3.0/tutorial/list-indexes/.