RocketChat
Используется утилита time-etl-rocketchat (Node.js).
-
Установить Node.js Version 6.11.0 LTS или выше.
-
Скачайте исходники ETL с data.tinkoff.ru, установите npm install.
- Доступ для скачивания следует запросить у сотрудников Т-Банка. Перейдя по ссылке, нужно зайти в директорию
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/
FAQ
При экспорте данных выполнение скрипта миграции как-то визуализируется в консоли?
Ответ
Нет, такая возможность отсутствует.
Скрипт зависает при выгрузке постов, в консоли ничего нет
Ответ
Проверьте наличие индексов в коллекции rocketchat_message в MongoDB. Инструкция по получению списка индексов: https://www.mongodb.com/docs/v3.0/tutorial/list-indexes/.