В версии 0.6 в PostgreSQL была добавлена новая база данных lepus и новые роли пользователей. Если у вас уже установлен NAICE версии 0.5, то при обновлении PostgreSQL необходимо выполнить действия по одному их следующих сценариев.
1. Обновление контейнера naice-postgres с потерей данных
Если вам не нужны данные, которые были добавлены в NAICE версии 0.5, то выполните следующие действия:
Удалите все файлы из директории с данными PostgreSQL:
cd /etc/docker-naice sudo rm -r var/pgdata/
Измените версию образа контейнера на актуальную в переменных окружения .env:
sudo nano .env POSTGRES_VERSION_TAG:0.6.1
Перезапустите контейнеры с обновлением образов:
docker compose down && docker compose pull && docker compose up -d
2. Обновление контейнера naice-postgres без потери данных
Для сохранения данных при обновлении последовательность действий следующая:
Закоментировать проброс volume в контейнер в docker-compose.yml:
cd /etc/docker-naice sudo nano docker-compose.yml postgres: container_name: naice-postgres image: nexus.eltex.loc:9012/naice/postgres:${POSTGRES_VERSION_TAG} # volumes: # - ./var/pgdata:/var/lib/postgresql/data
Измените версию образа контейнера на актуальную в переменных окружения .env:
sudo nano .env POSTGRES_VERSION_TAG:0.6.1
Перезапустить контейнер:
docker compose stop && docker compose pull && docker compose up -d
- Раскомментировать проброс volume, перезапустить контейнер.
Создать файл скрипта naice06.sql следующего содержания:
CREATE ROLE ovis LOGIN ENCRYPTED PASSWORD 'ovis' IN ROLE ursus; CREATE ROLE lemmus LOGIN ENCRYPTED PASSWORD 'lemmus' IN ROLE ursus; CREATE ROLE radius LOGIN ENCRYPTED PASSWORD 'radius' IN ROLE ursus; CREATE ROLE lepus LOGIN ENCRYPTED PASSWORD 'lepus'; CREATE ROLE vulpus LOGIN ENCRYPTED PASSWORD 'vulpus' IN ROLE lepus; CREATE DATABASE lepus OWNER lepus;
Выполнить скрипт (требует наличия postgresql-client-15):
psql -h <IP-адрес PostgreSQL> -U ursus -f naice06.sql
Пароль пользователя ursus по умолчанию - ursus.
3. Обновление данных в сервисе PostgreSQL
Если PostgreSQL установлен как сервис (не в docker-контейнере), то необходимо:
Создать файл скрипта naice06.sql следующего содержания:
CREATE ROLE ovis LOGIN ENCRYPTED PASSWORD 'ovis' IN ROLE ursus; CREATE ROLE lemmus LOGIN ENCRYPTED PASSWORD 'lemmus' IN ROLE ursus; CREATE ROLE radius LOGIN ENCRYPTED PASSWORD 'radius' IN ROLE ursus; CREATE ROLE lepus LOGIN ENCRYPTED PASSWORD 'lepus'; CREATE ROLE vulpus LOGIN ENCRYPTED PASSWORD 'vulpus' IN ROLE lepus; CREATE DATABASE lepus OWNER lepus;
Выполнить скрипт (требует наличия postgresql-client-15):
psql -h <IP-адрес PostgreSQL> -U ursus -f naice06.sql
Пароль пользователя ursus по умолчанию - ursus.