Help:Migration
Миграция
Миграция со старого сервера
В данном подразделе описана миграция со старого сервера, поставляющегося в комплекте со Svace. Это не относится к миграции между версиями Svacer. Миграция данных со старого сервера на Svacer состоит из двух этапов:
- Экспорт информации со старого сервера.
- Импорт данных в новый.
Для экспорта информации со старого Svace сервера используется утилита svace-migration.jar
java -jar svace-migration.jar <user> <password> <path to svace> <path to server dir> <path to output dir>
Параметры, используемые при экспорте данных
Параметр | Описание |
---|---|
<user> | Имя пользователя на старом сервере |
<password> | Пароль пользователя на старом сервере |
<path to svace> | Путь к директории, где находится Svace |
<path server dir> | Директория, из которой запущен старый сервер |
<path to output dir> | Директория, в которую будут записаны экспортируемые данные |
Экспорт данных возможен при работающем старом сервере. Экспорт инкрементальный, поэтому ранее экспортированные результаты повторно не переносятся. При экспорте утилита svace-migration.jar извлекает:
- все снимки в виде *.svres;
- информацию о размещении исходного кода;
- сопутствующую информацию в директории старого сервера.
ВНИМАНИЕ: Для работы утилиты требуется Java 17+, при запуске возможно потребуется добавить опции JVM:
--add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED
Для импорта экспортированных данных используется следующая команда:
svacer migrate [--skip-dxr-errors] --distr <path to svace distr> --temp <path to temp folder> --store <intermediate store> <path to exported data>
Параметры, используемые при импорте данных
Параметр | Описание |
---|---|
--skip-dxr-errors | Опциональный параметр для игнорирования ошибок в DXR-данных. Рекомендуется к использованию |
--distr | Путь к дистрибутиву Svace |
--temp | Директория для хранения временных файлов в ходе конверсии |
--store | Путь к промежуточному хранилищу |
<path to exported data> | Путь к директории, в которую были экспортированы результаты |
После конвертации данных в промежуточное хранилище результат можно загрузить на новый сервер с помощью команды upload:
svacer upload --user <user> --password <pwd> --host <host> --port <rest port> --grpc <grpc port> <path to store>
Миграция между версиями Svacer
Миграция БД PostgreSQL и object store между версиями Svacer происходит автоматически при обновлении на новую версию. Рекомендуется делать резервные копии перед обновлением (см. раздел Создание и восстановление резервной копии).
Ниже описаны существенные изменения при переходе на определенную версию с более старой
- 4.0.1 и выше — миграция object store (badger) на новую версию. Может занимать существенное время при большом количестве проектов в Svacer. После перехода на версию 4.0.1 и выше object store становится несовместим с более ранними версиями
- 5.0.0 и выше — перенос DXR разметки из PostgreSQL в object store. Версии 5.0.0 и выше не совместимы с более ранними версиями.