Если на сервере раньше работала EVI в deb-пакетах, ее данные (базы PostgreSQL и ClickHouse) можно перенести в новое Docker-развертывание. Как правило, перенос выполняет сам мастер установки — отдельно ничего запускать не нужно.

Автоматическая миграция

Во время установки мастер спрашивает, нужно ли перенести данные с предыдущей deb-установки EVI:

Если ответить «да», мастер:

  1. Остановит deb-сервисы EVI на сервере;
  2. Снимет дампы баз данных PostgreSQL и ClickHouse;
  3. Загрузит данные в Docker-объемы платформы;
  4. Запустит сервисы платформы.

Миграция выполняется автоматически, никаких действий с вашей стороны не требуется.

Резервная копия

Дампы данных сохраняются в папку ./db_transfer_backup — это резервная копия.

На время миграции платформа недоступна: старые (deb-)сервисы остановлены, а Docker-стек запускается после загрузки данных.

Если при установке на вопрос мастера был дан ответ «нет», миграцию можно запустить отдельно:

docker compose run --rm migrate

Ручная миграция

Если платформа уже установлена, но данные еще не перенесены, используйте скрипт transfer_data_to_docker.sh, идущий вместе со стеком платформы.

Шаг 1. Запуск скрипта

Откройте терминал в корне стека (в папке, где находится каталог ./core либо docker-compose.yml standalone-стека) и выполните:

./transfer_data_to_docker.sh                # обычный стек (./core)
./transfer_data_to_docker.sh --stack-dir .  # standalone-стек в корне

Скрипт покажет, какие данные будут перенесены и какие сервисы остановятся. Подтвердите запуск:

Шаг 2. Проверка результата

После миграции платформа запускается из Docker. Проверьте, что все сервисы работают:

Проверка
docker compose ps      # все сервисы в состоянии healthy

Откройте веб-интерфейс платформы по адресу сервера: если старые данные (камеры, пользователи, события) на месте — миграция прошла успешно.

Откат

При миграции хостовые (deb) базы данных останавливаются, но не удаляются. Если нужно вернуться к предыдущей установке:

sudo systemctl start postgresql
sudo systemctl start clickhouse-server

Дампы данных остаются в папке ./db_transfer_backup/<timestamp>/ — их можно использовать для восстановления баз.

Технические детали

Суть переноса: миграция выполняет логический (dump/restore) перенос данных PostgreSQL и ClickHouse с deb-установки в Docker-объемы стека EVI — Core-группы (./core, по умолчанию) либо standalone-стека (--stack-dir .).

Логический перенос выбран намеренно: мажорные версии источника и цели различаются (PostgreSQL 17 → 18), пофайловое копирование каталога данных между ними невозможно.

Остановка сервисов: deb-сервисы EVI (angie, evi-core, evi-scud, evi-analytics, evi-live, evi-archive, evi-analyzer) скрипт останавливает сам, иначе запись в БД во время дампа означала бы потерю свежих событий. Если они уже остановлены, шаг отключается флагом --no-stop-evi.

Предусловия

  • Скрипт запускается из корня стека (рядом должен находиться каталог стека — ./core или сам корень);
  • На хосте должны быть доступны: pg_dump, psql, clickhouse-client, docker compose;
  • Пользователь должен иметь право запускать sudo (для остановки systemd-сервисов и для sudo -u postgres при peer-auth).
  • Нет меток