...
Если в процессе обновления возникли проблемы, перейдите в раздел Перезапуск проекта на старой версии БД для отката изменений с версии 1.7 до предыдущей версии 1.6.
...
Подсказка | ||
---|---|---|
Для удобства работы рекомендуем предварительно разместить файлы для запуска новой версии в соседнюю директорию от старой, например:
|
Якорь | ||||
---|---|---|---|---|
|
Для обновления ECCM с версии 1.6 до версии 1.7 остановите запущенные сервисы средствами docker-compose из каталогов с файлами запуска ECCM 1.6:
Остановка identity-provider
Блок кода |
---|
cd <путь до каталога с файлами запуска ECCM 1.6>/identity-provider sudo docker-compose down |
Остановка eccm
Блок кода |
---|
cd <путь до каталога с файлами запуска ECCM 1.6>/eccm sudo docker-compose down |
Остановка postgres
Блок кода |
---|
cd <путь до каталога с файлами запуска ECCM 1.6>/postgres sudo docker-compose down |
Далее необходимо обновить БД.
Обновление БД
Для удобства обновления БД в состав файлов для запуска 1.7 добавлен скрипт postgres-upgrade.sh (находится в ./db-tools/postgres-upgrade.sh), который выполняет несколько действий:
- запуск вспомогательного контейнера с Postgres12.5 для выполнения действий с существующей БД;
- вычисление объема данных, хранимых в БД;
- проверка свободного места на диске;
- создание дампа существующих данных в БД (в зависимости от объема данных и мощности сервера время выполнения может отличаться) в /tmp/eccm-dump/eccm-postgres-upgrade-dump.tar.gz;
- создание копии существующего docker-хранилища для Postgres (используемого базой данных) с названием postgres_eccm-postgres-dump;
- пересоздание хранилища и контейнера Postgres на новой версии;
- загрузка дампа данных, созданного на 4 шаге, в новую БД.
Использование скрипта
Предупреждение |
---|
Перед запуском скрипта обновления нужно остановить работу ECCM предыдущей версии (1.6). |
Для запуска перейдите в директорию со скриптом. Он должен находиться в ./db-tools относительно корневой директории, в которую распаковали архив с файлами запуска.
...
(n) — исключение данных таблицы с логами из дампа.
Пример выполнения скрипта
Без форматирования |
---|
tester@tester:~/eccm-deploy/docker/run/db-tools$ ./postgres-upgrade.sh Postgresql docker-compose directory does not provided. Using /home/tester/eccm-deploy/docker/run/postgres. Error: No such volume: postgres_eccm-postgres-dump Start Postgresql upgrading: hub.eltex-co.ru/eccm/postgres:12.5 -> hub.eltex-co.ru/eccm/timescaledb:pg14. Deploying old Postgresql hub.eltex-co.ru/eccm/postgres:12.5... Creating volume "postgres_eccm-postgres-dump" with default driver Recreating postgres_postgres_1 ... done db_name | db_size -------------------------------------+--------- postgres | 7945 kB template1 | 7801 kB template0 | 7801 kB identity_provider_db | 8265 kB identity_provider_access_control_db | 9329 kB eccm | 14 MB zabbix | 25 MB polemarch-db | 11 MB (8 rows) Total databases size is 0.12207 GB. Upgrade requires 0.317382 GB. Disk have 43G free space available at /. Postgresql data will be recreated. Are you sure? [y/N] y Create the Zabbix database backup? [Y/n] y Create the Polemarch log table backup? Be careful! If no, then all task logs will be lost! [Y/n] n Creating backup file... Backup file successfully created. Creating backup volume... Backup volume successfully created. Stopping postgres_postgres_1 ... done Removing postgres_postgres_1 ... done Removing network postgres_default Deploying new Postgresql hub.eltex-co.ru/eccm/timescaledb:pg14... Creating network "postgres_default" with the default driver Creating volume "postgres_postgres" with default driver Pulling postgres (hub.eltex-co.ru/eccm/timescaledb:pg14)... Creating postgres_postgres_1 ... done Start dump uploading... Dump successfully uploaded. Stopping postgres_postgres_1 ... done Removing postgres_postgres_1 ... done Removing network postgres_default Postgresql successfully upgraded. Dump file stored in /tmp/eccm-dump. Dump volume saved as postgres_eccm-postgres-dump. tester@tester:~/eccm-deploy/docker/run/db-tools$ |
Запуск новой версии ECCM
Для запуска проекта на новой версии нужно перейти в директорию с файлами установочного архива новой версии и выполнить команду:
|
Scroll Pagebreak |
---|
Якорь | ||||
---|---|---|---|---|
|
На случай непредвиденных проблем, скрипт выполняет полное копирование базы данных в отдельный docker-volume с названием postgres_eccm-postgres-dump. Это позволяет быстро перезапустить проект на предыдущей версии БД и сервисов.
...