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

Миграция данных из предыдущих версий#


Данная инструкция предназначена для переноса базы данных со старой версии Trusted.ID в новую. Ниже представлены два проверенных способа миграции: копирование каталога с данными и экспорт/импорт через pg_dump и psql.

Вариант 1: копирование каталога данных#

🔔 Замените пути /trusted.id_v1 и /trusted.id_v2 на реальные пути к директориям, где установлены соответствующие версии системы.

  1. Остановите первую версию (v1):

    cd /trusted.id_v1 && docker compose down
    
  2. Остановите вторую версию (v2):

    cd /trusted.id_v2 && docker compose down
    
  3. Удалите или переименуйте существующий каталог базы данных новой версии (если он уже существует):

    mv /trusted.id_v2/data/postgres /trusted.id_v2/data/postgres_bak
    
  4. Скопируйте каталог данных из старой версии:

    cp -r /trusted.id_v1/data/postgres /trusted.id_v2/data/
    
  5. Запустите вторую версию:

    cd /trusted.id_v2 && docker compose up -d
    

После запуска новая версия будет использовать базу данных, перенесённую из предыдущей.


Вариант 2: с использованием pg_dump и psql#

⚠️ Внимание! Перед выполнением миграции убедитесь, что создана актуальная резервная копия рабочей базы данных.

Шаг 1. Подготовка новой версии#

  1. Перейдите в каталог новой версии (V3):

    cd <ПУТЬ_К_V3>
    
  2. Остановите все сервисы:

    docker compose down
    
  3. Удалите существующий каталог volume базы данных (если он был создан ранее):

    rm -rf data/postgres
    
  4. Создайте новый пустой каталог volume:

    mkdir -p data/postgres
    

Шаг 2. Экспорт базы данных из старой версии#

Выполните команду экспорта в контейнере со старой базой данных:

docker exec -t <КОНТЕЙНЕР_СТАРОЙ_БД> pg_dump -U <ПОЛЬЗОВАТЕЛЬ> <ИМЯ_БД> > dump.sql

Пример:

docker exec -t id-db pg_dump -U postgres trustedid > dump.sql

⚠️ Замените id-db на имя контейнера PostgreSQL из старой версии, если отличается. По умолчанию — id-db.

Шаг 3. Запуск базы данных новой версии#

  1. Перейдите в каталог новой версии:

    cd <ПУТЬ_К_V3>
    
  2. Запустите только сервис базы данных:

    docker compose up -d id-db
    

Подождите 5–10 секунд, чтобы PostgreSQL завершил инициализацию.

Шаг 4. Импорт дампа#

  1. Скопируйте файл дампа в контейнер:

    docker cp dump.sql id-db:/dump.sql
    
  2. Выполните восстановление базы:

    docker exec -i id-db psql -U postgres trustedid < /dump.sql
    

⚠️ Убедитесь, что имя пользователя -U postgres и имя базы данных trustedid совпадают с настройками в .env.

Шаг 5. Запуск всех сервисов#

После восстановления запустите всю систему:

docker compose up -d

Дополнительные команды#

Проверка логов базы данных:

docker logs -f id-db

Проверка логов сервера:

docker logs -f id-back