Выполнение миграции возможно только после обновления SoftWLC на версию 1.27 или выше!
Описание
В версии 1.27 основное хранилище данных изменено на БД eltex_bruce в MySQL. Если использовался функционал отправки отчетов из ЛК (раздел "Отчеты" → "Планировщик отчетов") необходимо после обновления на версию 1.27 и выше выполнить миграцию данных.
Миграция базы данных из MongoDB в MySQL выполняется при помощи скрипта, который после установки сервиса будет развернут в папке "/usr/lib/eltex-bruce/migration".
application.conf - файл конфигурации, в котором определяются адреса подключения к БД MongoDB и MySQL.
README.md - описание настроек и запуска скрипта.
requirements.txt - список необходимых библиотек для python.
Требования
- Для выполнения скрипта требуется python3.10.
- Необходимые для установки модули языка python3.10 приведены файле requirements.txt.
- Скрипт миграции может быть запущен на любой машине. Необходимо обеспечить доступ к серверу с MongoDB по порту 27017 и доступ к серверу с MySQL по порту 3306.
Настройка
Перед тем как приступить к миграции необходимо выполнить ряд подготовительных действий.
1) Установить python3.10, если он не установлен. При необходимости можно скопировать файлы скрипта на отдельный компьютер.
Архив с файлами скрипта миграции: eltex-bruce-migration.zip
2) Создать изолированную среду python, т. к. скрипт будет запущен один раз, что бы не засорять основную систему необходимыми пакетами для миграции:
root@swlc:~# python3.10 -m venv db_bruce_migration
3) Выполнить "активацию" виртуальной среды, после чего в приглашение командной строки добавится префикс виртуальной среды (db_bruce_migration):
root@swlc:~# source db_bruce_migration/bin/activate
4) Установить необходимые модули для выполнения миграции:
(db_bruce_migration) root@swlc:~# pip3.10 install -r requirements.txt
5) Если БД находятся на разных хостах - в файле application.conf необходимо указать адреса этих хостов:
Если используется кластер MongoDB - необходимо указать IP-адрес ноды, находящейся в состоянии "Primary".
Если используется реплика MySQL - необходимо указать VRRP IP-адрес реплики.
6) Выполнить запуск скрипта командой:
(db_bruce_migration) root@swlc:~# python3.10 main.py
7) Пример работы скрипта:
Start Задач было получено из mongo: 3 Задач было в mysql: 0 Перенос задач в mysql ... ████████████████████████████████ 100% Задач перенесено в mysql: 3 Время выполнения скрипта: 0.03 с.
8) Выполнить рестарт сервиса eltex-bruce:
root@swlc:~# systemctl restart eltex-bruce
9) Открыть ЛК, перейти в раздел "Отчеты" → "Планировщик отчетов" и убедиться в том, что отчеты отображаются и их миграция выполнена корректно.
До выполнения отчета хотя бы раз его "Статус выполнения" будет "НЕ ЗАПУЩЕН", а "Скачать отчет" будет "Отчет не доступен".
10) После успешного выполнения миграции нужно выполнить деактивацию виртуальной среды python env:
(db_bruce_migration) root@swlc:~# deactivate root@swlc:~#