Руководство по миграции

Этот раздел описывает действия, необходимые для миграции между основными версиями SberMobile.

Миграция с версии 5.5X.XX на 5.6X.XX

Данное руководство поможет подготовить ваш SberMobile Server к обновлению с версии 5.5.x до 5.6.x.

Пожалуйста, сделайте резервную копию папки SberMobile Server и всех баз данных, используемых в вашем проекте.

Подготовка хранилища событий nosql (cassandra)

Это гайд поможет вам обновить ваше встроенное хранилище NoSQL до обновления SberMobile Server . SberMobile Server версий 5.4.x, 5.5.x и 5.60.01 использует Cassandra 2.0.12. SberMobile Server использует движок Cassandra версии 3.11, поэтому необходимо обновить версию до актуальной перед первым запуском версии 5.6.x.

Порядок обязательных шагов описан ниже:

  • Настройте переменную среды JAVA_HOME в вашей ОС.
  • Загрузите и извлеките сервер Cassandra версии 2.1.
  • Укажите правильный путь для параметров hints_directory, data_file_directories, commitlog_directory, saved_caches_directory в файле конфигурации cassandra.yaml. Он должен вести в папку текущей БД Cassandra внутри SberMobile Server (папка nosql_data)
  • Запустите сервер Cassandra.
  • Выполните nodetool upgradesstables из отдельной папки bin сервера Cassandra.
  • Обновите отдельный сервер Cassandra до следующей версии.
  • Повторите шаги 2-6 для версий 2.2, 3.0 и 3.11 сервера Cassandra.

    Обновление выражений после миграции на версию 5.6.x

    Мы обновили протокол, чтобы уменьшить количество метаданных, и удалили из него дополнительные символы кодирования.

    Вы можете увидеть дополнительные % символы в некоторых выражениях. В более старых версиях нашей платформы, мы хранили их в БД. Вам нужно удалить дополнительные % символы из ваших выражений и сохранить изменения. После этого действия правильные данные сохранятся в БД конфигурации и будут корректно работать в версии 5.6.x.

    Обновление скриптов

    Так как в новой версии Java API был изменен, вам также придется обновить ваши скрипты на Java. В особенности нужно будет поменять все ваши команды с классом DataTable (например, DataTable dataTable = new DataTable()) на команды с использованием SimpleDataTable (SimpleDataTable simpleDataTable = new SimpleDataTable()).