Перейти к содержанию

Обновление версии PostgreSQL для Docker Compose

Данная инструкция поможет обновить используемую в сканере систему управления базами данных PostgreSQL до 16 версии, содержащей необходимое для корректной работы сервиса расширение TimescaleDB.

Список затрагиваемых версий

Инструкцию необходимо проделать при обновлении сканера с версии v25.9 и старше на версию v25.10 и новее.

Миграция

Примечание

В предлагаемой инструкции миграция осуществляется с помощью встроенной в PostgreSQL команды pg_dump. Допускаются другие способы обновления, не указанные в инструкции.

  1. Запустите сервисы fuchsiad-database и backend-database, если они не ещё не запущены.
  2. Для сервиса backend-database получите имя пользователя и имя базы данных с помощью следующих команд:

    BACKEND_POSTGRES_USER=$(cat .env | grep BACKEND_POSTGRES_USER | cut -c23-)
    BACKEND_POSTGRES_DB=$(cat .env | grep BACKEND_POSTGRES_DB | cut -c21-)
    
  3. Создайте копию backend-database.

    docker compose exec backend-database pg_dump -U $BACKEND_POSTGRES_USER -d $BACKEND_POSTGRES_DB > backend_dump.sql
    
  4. Для сервиса fuchsiad-database получите имя пользователя и имя базы данных с помощью следующих команд:

    FUCHSIAD_POSTGRES_USER=$(cat .env | grep FUCHSIAD_POSTGRES_USER | cut -c24-)
    FUCHSIAD_POSTGRES_DB=$(cat .env | grep FUCHSIAD_POSTGRES_DB | cut -c22-)
    
  5. Создайте копию fuchsiad-database.

    docker compose exec fuchsiad-database pg_dump -U $FUCHSIAD_POSTGRES_USER -d $FUCHSIAD_POSTGRES_DB > fuchsiad_dump.sql
    
  6. Завершите работу сервиса Docker Compose.

    docker compose down
    
  7. Удалите тома backend-pgdata и fuchsiad-pgdata.

    docker volume rm `basename $(pwd)`_backend-pgdata `basename $(pwd)`_fuchsiad-pgdata
    
  8. Обновите SolidPoint Compose до новейшей версии.

  9. Запустите сервисы баз данных

    docker compose up -d backend-database fuchsiad-database
    
  10. Импортируйте копию backend-database.

    docker compose exec --no-TTY backend-database psql -U $BACKEND_POSTGRES_USER < backend_dump.sql
    
  11. Импортируйте копию fuchsiad-database.

    docker compose exec --no-TTY fuchsiad-database psql -U $FUCHSIAD_POSTGRES_USER < fuchsiad_dump.sql
    
  12. Перезапустите все сервисы

    docker compose down
    docker compose up -d