Обновление системы с помощью Docker
Предварительные условия
- Сервер, на котором размещена обновляемая версия Юниверс MDM, имеет доступ к интернету. 
- Установлен Git. 
- Установлен Docker Compose (версия выше 1.29). 
- Проект Юниверс MDM был клонирован на сервер. 
- Если возникли ошибки при обновлении, то нужно сбросить в бд конфигурацию (рекомендуется сохранить ее до миграции, т.к. в случае возникновения ошибок будет доступен только сброс параметров) - DELETE FROM org_unidata_mdm_system.configuration;.
Обновление системы
Предупреждение
Осуществлен переход с Elasticsearch на OpenSearch. Если обновлять ветку, имея поднятый docker, то старый контейнер elasticsearch будет препятствовать дальнейшим запускам. Поэтому рекомендуется выполнить нижеописанные действия
Предупреждение
В Юниверс MDM версии 6.11 было осуществлено обновление PostgreSQL до версии 16.3, в связи с этим теперь требуется обязательная установка расширения TimescaleDB для корректной работы с большими объемами данных. В зависимости от вашей ОС, проверьте шаги установки TimescaleDB в руководстве по установке системы. Перед установкой рекомендуется проверить совместимость вашей версии PostgreSQL и версии TimescaleDB.
- Перед обновлением остановите работу образа Docker Compose через команду - docker-compose down.- Поднять контейнеры после обновления возможно через команду: - docker-compose up --force-recreate -d --remove-orphans. Последняя опция очищает Elasticsearch контейнер.
 
- Войдите в репозиторий Gitlab (доступ к репозиторию с дистрибутивом вашего продукта должен быть получен заранее согласно договору поставки). 
- Переключитесь на ветку release/6.11. 
- Извлеките проект. Команда - git pull.
- Перейдите в каталог с кодом. Пример команды: - cd universe-platform-deploy 
- При необходимости в файле .env, расположенном в корне проекта, измените параметры для БД и параметры портов. Пример файла .env смотрите по ссылке. 
- Для запуска системы используйте команду: - docker-compose up -d 
Обновление PostgreSQL
Примечание
Ниже приведен пример обновления PostgreSQL с версии 12 на версию 16.3. Вы также можете воспользоваться официальной документацией PostgreSQL.
Совет
Обратите внимание, что команды должны выполняться из директории, где находится файл docker-compose.yaml.
- Создайте резервную копию базы данных: - $ docker exec -t unidata-deploy-postgres-mdm-1 pg_dump -U postgres -d postgres -F c -b -v -f /backup.dump 
- Создайте копию в формате sql (на всякий случай): - $ docker exec -t unidata-deploy-postgres-mdm-1 pg_dump -U postgres -d postgres > backup.sql 
- Скопируйте файл дампа из контейнера на хост: - $ docker cp unidata-deploy-postgres-mdm-1:/backup.dump ./backup.dump $ docker cp unidata-deploy-postgres-mdm-1:/backup.sql ./backup.sql - где: - -U postgres— пользователь базы данных;- -d your_database_name— имя базы данных;- -F c— формат дампа (custom);- -b— включает большие объекты в дамп;- -v— включает подробный вывод;- -f backup.dump— имя файла дампа.
- Остановите и удалите контейнеры: - $ docker-compose down 
- Удалите старый том данных PostgreSQL: - $ docker volume rm unidata-deploy_mdm-postgres-data 
- Обновите систему. 
- Восстановите базу данных - запустите только контейнер postgres: - $ docker-compose up -d postgres-mdm 
- Скопируйте файл дампа в контейнер PostgreSQL 16.3: - $ docker cp ./backup.dump unidata-deploy-postgres-mdm-1:/backup.dump 
- Восстановите базу данных из дампа: - $ docker exec -i unidata-deploy-postgres-mdm-1 pg_restore -U postgres -d postgres -v /backup.dump 
- Запустите контейнеры с обновленной конфигурацией: - $ docker-compose up -d