Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Выполнение миграции возможно только после обновления SoftWLC на версию 1.27 или выше!

Описание

В версии 1.27 основное хранилище данных изменено на БД eltex_bruce в MySQL. Если использовался функционал отправки отчетов из ЛК (раздел "Отчеты" → "Планировщик отчетов") необходимо после обновления на версию 1.27 и выше выполнить миграцию данных.

Миграция базы данных из MongoDB в MySQL выполняется при помощи скрипта, который после установки сервиса будет развернут в папке "/usr/lib/eltex-bruce/migration".

 Список файлов скрипта в папке /usr/lib/eltex-bruce/migration

application.conf
const.py
logger.py
main.py
mongo.py
mysql.py
README.md
requirements.txt

application.conf - файл конфигурации, в котором определяются адреса подключения к БД MongoDB и MySQL.

README.md - описание настроек и запуска скрипта.

requirements.txt - список необходимых библиотек для python.

Требования

  1. Для выполнения скрипта требуется python3.10.
  2. Необходимые для установки модули языка python3.10 приведены файле requirements.txt.
  3. Скрипт миграции может быть запущен на любой машине. Необходимо обеспечить доступ к серверу с MongoDB по порту 27017 и доступ к серверу с MySQL по порту 3306.

Настройка

Перед тем как приступить к миграции необходимо выполнить ряд подготовительных действий.

1) Установить python3.10, если он не установлен. При необходимости можно скопировать файлы скрипта на отдельный компьютер.

Пример команды для копирования на удаленную машину
scp -rpC /usr/lib/eltex-bruce/migration <имя пользователя>@<IP-адрес удаленного компьютера>:/<папка назначения>

Архив с файлами скрипта миграции:  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-адрес реплики.


application.conf
log: {
    file_name: "logfile.log"
    level: "DEBUG"
}

# Mongo
mongodb: {
    host: "IP-адрес MongoDB",
    port: "27017",
}


# Mysql
mysql: {
    host: "IP-адрес MySQL",
    port: "3306",
    username: "javauser",
    password: "javapassword",
    charset: "utf8",
}

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:~#
  • Нет меток