В связи с изменением версии БД (Postgres 15)  стандартная процедура обновления с сохранением данных не возможна.

Процедура приведенная ниже производит перенос данных БД через импорт

Подготовка бекапа 

Перед началом процедуры убедитесь что места достаточно для создания копии папки rtls
  1. Выключить все контейнеры 
    cd rtls
    docker compose stop
  2. Сделать бекап текущего состояния через изменение имени рабочей директории rtls 
    cd ../
    mv rtls rtls_bup

Экспорт данных в файл

  1. запустить контейнер postgres
    cd rtls_bup
    docker compose up -d postgres
  2. провести предпочтительную процедуру экспорта  
    1. только конфигурация без исторических данных (без истории перемещений, событий и т.д) 
      docker compose exec -ti postgres su postgres -c 'pg_dump -d postgres -U postgres -n rtls_pu \
      --exclude-table-data=rtls_pu.rtls_tag_blink \
      --exclude-table-data=rtls_pu.rtls_mileage \
      --exclude-table-data=rtls_pu.rtls_tag_sensor \
      --exclude-table-data=rtls_pu.rtls_event \
      --exclude-table-data=rtls_pu.rtls_area_log \
      --exclude-table-data=rtls_pu.rtls_site_log \
      -Fc -f /var/lib/postgresql/data/schema_v5.dmp'
    2. все данные, включая исторические 
      docker compose exec -ti postgres su postgres -c 'pg_dump -d postgres -U postgres -n rtls_pu \
      -Fc -f /var/lib/postgresql/data/schema_v4.dmp'
  3. убедиться что в директории postgres появился файл postgres/schema_v5.dmp 

    ls -lh postgres/
  4. остановить контейнер postgres 
    docker compose stop postgres

Подготовка к импорту

  1. распаковать ПО v6.0 в папку rtls согласно инструкции Первая установка и обновление (чистая установка)  до п.4 (без запуска контейнеров)
  2. в папку  postgres/ положить файл с данными, выгруженными из БД 
    cp ../rtls_bup/postgres/schema_v5.dmp ./postgres/
  3. положить файл update_v5.5.1-v6.sql в директорию postgres/
  4. запустить контейнер postgres 
    docker compose up -d postgres
  5. дождаться полного запуска контейнера postgres (статус healthy)

Импорт данных

  1. загрузка данных в БД может занять некоторое время (в зависимости от схемы экспорта) 
    docker compose exec -ti postgres su postgres -c 'psql -d postgres -c "DROP SCHEMA rtls_pu CASCADE;"'
    docker compose exec -ti postgres pg_restore -d postgres -U postgres /var/lib/postgresql/data/schema_v5.dmp
    docker compose exec -ti postgres su postgres -c 'psql -d postgres -f /var/lib/postgresql/data/update_v5.5.1-v6.sql'
  2. запустить остальные контейнеры 
    docker compose up -d
  3. cкопировать данные о картографических слоях  в рабочую папку

    cp -R ../rtls_bup/srv/geoserver-data/data/rtls srv/geoserver-data/data/
    cp -R ../rtls_bup/srv/geoserver-data/workspaces/rtls/site* srv/geoserver-data/workspaces/rtls/
  4. перезапустить контейнеры 
    docker compose restart

Проверка результата импорта

  1. ождаться полного запуска контейнеров (статус healthy)
  2. загрузить пользовательский интерфейс CToolUI или BA-U
  3. проверить отображение устройств на картах