5. Обновление версии
5.1. Обновление из консоли для Datamart Platform Studio, установленной на сервере (ВМ)
Примечание
В зависимости от мощности сервера и скорости каналов связи процесс обновления может занять от 30 до 60 минут.
Для обновления Datamart Studio установленной на сервере необходимо произвести следующие действия в консоли от имени пользователя datamart:
Перейти в папку с установленной Datamart Platform Studio (в текущем примере /home/datamart)
# cd /home/datamart
Остановить текущую версию, выполнив команду
stop:
# ./datamart-studio stop
Рисунок 5.3 Остановка Datamart Platform Studio
Создать бэкап текущей версии Datamart Studio
Перед созданием бэкапа желательно удалить из папки старые архивы, если они там есть (например, файл datamart-studio-xxx.tgz мог остаться после установки), так как они будут занимать лишнее место в папке бэкапа.
Для запуска процедуры архивации бэкап копии текущей версии выполняем команду:
# sudo ./datamart-studio backup
Примечание
Созданный бэкап-файл будет помещен по умолчанию в подпапку ./backup
Если требуется применить дополнительные опции бэкапирования, см. раздел Раздел 4 Резервное копирование и восстановление
Процесс архивации достаточно длительный и, в зависимости от размера программы и мощности сервера, может занимать 10 минут или более.
Скачать архив с обновлением для новой версии
Например, для скачивания архива в папку /tmp, необходимо выполнить команды:
# cd /tmp
# sudo wget https://dms-demo.datamart.ru/datamart/dtms-builds/datamart-studio-NEW_VERSION.tar.gz
Распаковать архив
Для этого необходимо создать новый каталог в папке, в которую был скачен архив на предыдущем шаге (в примере папка /tmp) и распаковать в него скачанный архив:
# mkdir datamart_studio_upgrade
# tar zxvf datamart-studio-NEW_VERSION.tar.gz -C datamart_studio_upgrade
Запустить процедуру обновления
Для запуска процедуры обновления, необходимо зайти в каталог, в котором было распаковано обновления ( в примере каталог /tmp/datamart_studio_upgrade/ ) и запустить процесс обновления (c sudo), указав в команде каталог, в котором установлена текущая версия Программы (/home/datamart/):
# cd /tmp/datamart_studio_upgrade/
# sudo ./datamart-studio upgrade /home/datamart
Примечание
Процесс обновления достаточно длительный и в зависимости от размера программы и мощности сервера может занимать 10 минут или более.
В случае успешного обновления, процесс завершается сообщением:
Datamart Studio updated to version <NEW_VERSION>
Программа Datamart Studio будет запущена автоматически. В шапке веб-интерфейса программы должен быть отображён номер новой версии:
Рисунок 5.4 Версия Datamart Platform Studio после обновления
Обновить бандлы приложений из хранилища репозиториев
После проведения обновления и запуска программы необходимо обновить бандлы и приложения из хранилищ(а) репозиториев.
Вариант 1: Обновить из консоли
Обновить все хранилища репозиториев можно командой:
docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails runner "Rephub.all.each { |r| r.grab_repositories }"
Обновить отдельное хранилище репозиториев по ID:
docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails runner "Rephub.find(:id).grab_repositories"
Вариант 2: Обновить из веб-интерфейса |prod|
Обновить данные хранилищ в веб-интерфейсе Datamart Platform Studio можно в разделе «Репозитории». В указанном разделе необходимо нажать на кнопку «Обновить все» ( см. Рисунок 5.5):
Рисунок 5.5 Обновление данных хранилищ в веб-интерфейсе Datamart Platform Studio
Примечание
Если у вас подключено несколько хранилищ репозиториев (реп-хабов), можно обновить бандлы из репозиториев для каждого из подключенных хранилищ.
5.2. Обновление c консоли сервера управления для Datamart Platform Studio установленной в среде в Kubernetes (K8s)
Для проведения процедуры обновления Datamart Platform Studio работающей в среде K8s требуется на управляющем сервере (ВМ) последовательно произвести следующие действия:
Удалить данные старой версии (за исключением бэкап-файлов):
rm -rf /opt/datamart-studio/datamart-studio{,-k8s}
Распаковать новую версию (вместо datamart-studio-NEW.tgz подставьте имя нового архива):
tar zxf datamart-studio-NEW.tgz -C /opt/
Удалить старую версию из K8s (все POD и все хранилища persistentVolumeClaims):
./datamart-studio destroy-k8s
kubectl -n dms get persistentvolumeclaims
Установить новую версию:
./datamart-studio deploy-k8s
Примечание
В процессе обновления данные Datamart Platform Studio будут сохранены, обновится только контейнер Datamart Platform Studio, который будет функционировать с кодом новой версии.
Обновить бандлы из репозитория
После проведения обновления и запуска программы необходимо обновить бандлы и приложения из репозитория. Для этого в разделе «Репозитории» необходимо нажать на кнопку «Обновить все» (см. Рисунок 5.5):
5.3. Определение версии сборки
Версия текущей сборки ПО Datamart Platform Studio отображается в заголовке на странице сводной панели во всплывающем окне (см. Рисунок 5.6):
Рисунок 5.6 Версия сборки Datamart Platform Studio
5.4. Особенности обновлений
5.4.1. Особенности обновления до версии 2.7.0
Для проведения консистентного обновления установленных услуг в Datamart Platform Studio до версии 2.7.0 потребуется обновление установленных приложений из бандлов. Это связано с обновлением логики связи исходящих интерфейсов по нескольким портам. В версии 2.6.0 и ранее возможно было установить соединения только по одному общему порту.
5.4.2. Концепция обновления для группы Cтудий
При обслуживании группы отдельно развернутых версий Datamart Platform Studio для удобства единовременного обновления и соблюдения единообразного содержания хранилищ репозиториев, версий бандлов и версий доступного для разворачивания и реконфигурирования Витрин данных ПО, может применяться схема со служебной мастер-Студией тех. поддержки и дочерними Студиями (клиентскими версиями).
В этом случае, обновление происходит в 2 этапа:
Сначала, обычным образом, обновляется мастер-Студия.
После обновления мастер-Студии, для каждой дочерней запускается скрипт обновления из мастера.
При этом, в файле конфигураций дочерних студий, настройки хранилища Nexus и Gitea настраиваются таким образом, чтобы они смотрели не на собственные хранилища, а на централизованный Nexus и Gitea в мастер-Студии (см. ra_dtmsconfig ra_dtmsconfig настройка параметров DOCKER_REGISTRY, GLOBAL_VALUES, GITEA_HOST).
5.4.3. Обнаружение ошибок миграции
Если после обновления в заголовке Datamart Platform Studio выводится предупреждающее сообщение об ошибках миграции, то это значит, что какая-то часть скриптов миграции при обновлении версии выполнена некорректно. Необходимо проверить статус прохождения процессов миграции данных командой rails data:migrate:status и схемы данных командой rails db:migrate:status:
# docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails data:migrate:status
# docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails db:migrate:status
В случае обнаружения ошибочного статуса (down) в одной из миграций, попробовать повторить процесс миграции командой rails db:migrate для схемы данных:
# docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails db:migrate
и миграции данных командой rails data:migrate :
# docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails data:migrate
запустить обе миграции сразу можно командой rails db:migrate:with_data :
# docker-compose -f docker-compose.datamart.yaml exec app bundle exec rails db:migrate:with_data
В случае повторения ошибок, прислать данные ошибок в службу технической поддержки Datamart Platform Studio для выяснения причин и оперативного устранения проблемы.