Help:Migration: Difference between revisions

From Svacer Wiki
(svace-migration.jar is not included starting from 8.0.0)
m (change previous releases link)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Help]]
[[Category:Help]]
== Миграция ==
 
{{Note|type=error|text=Это устаревшая функциональность, она не поддерживается и стабильная работа не гарантируется}}
 
=== Миграция со старого сервера ===
=== Миграция со старого сервера ===
В данном подразделе описана миграция со старого сервера, поставляющегося в комплекте со Svace. Это не относится к миграции между версиями Svacer. Миграция данных со старого сервера на Svacer состоит из двух этапов:
В данном подразделе описана миграция со старого сервера, поставляющегося в комплекте со Svace. Это не относится к переходу между версиями Svacer. Миграция данных со старого сервера на Svacer состоит из двух этапов:
# Экспорт информации со старого сервера.
# Экспорт информации со старого сервера.
# Импорт данных в новый.
# Импорт данных в новый.


Для экспорта информации со старого Svace сервера используется утилита '''svace-migration.jar'''. Начиная с релиза 8.0.0 она не входит в дистрибутив Svacer, но можете взять из [[Svacer#Предыдущие_релизы|предыдущих релизов]].
Для экспорта информации со старого Svace сервера используется утилита '''svace-migration.jar'''. Начиная с релиза 8.0.0 она не входит в дистрибутив Svacer, но вы можете взять ее из [https://svacer.ispras.ru/releases предыдущих релизов].


     java -jar svace-migration.jar <user> <password> <path to svace> <path to server dir> <path to output dir>
     java -jar svace-migration.jar <user> <password> <path to svace> <path to server dir> <path to output dir>
Line 37: Line 39:
* сопутствующую информацию в директории старого сервера.
* сопутствующую информацию в директории старого сервера.


ВНИМАНИЕ: Для работы утилиты требуется Java 17+, при запуске возможно потребуется добавить опции JVM:
Для работы утилиты требуется Java 17+, при запуске возможно потребуется добавить опции JVM:
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED  
     --add-opens java.base/java.lang.reflect=ALL-UNNAMED  
     --add-opens java.base/java.lang=ALL-UNNAMED  
     --add-opens java.base/java.lang=ALL-UNNAMED  
Line 73: Line 75:


     svacer upload --user <user> --password <pwd> --host <host> --port <rest port> --grpc <grpc port> <path to store>
     svacer upload --user <user> --password <pwd> --host <host> --port <rest port> --grpc <grpc port> <path to store>
=== Миграция между версиями Svacer ===
Миграция БД PostgreSQL и object store между версиями Svacer происходит автоматически при обновлении на новую версию. Рекомендуется делать резервные копии перед обновлением (см. раздел [[Help:Backup#Создание и восстановление резервной копии|Создание и восстановление резервной копии]]).
Ниже описаны существенные изменения при переходе на определенную версию с более старой
* 4.0.1 и выше — миграция object store (badger) на новую версию. Может занимать существенное время при большом количестве проектов в Svacer. После перехода на версию 4.0.1 и выше object store становится несовместим с более ранними версиями
* 5.0.0 и выше — перенос DXR разметки из PostgreSQL в object store. Версии 5.0.0 и выше не совместимы с более ранними версиями.

Latest revision as of 17:46, 16 September 2024


Это устаревшая функциональность, она не поддерживается и стабильная работа не гарантируется

Миграция со старого сервера

В данном подразделе описана миграция со старого сервера, поставляющегося в комплекте со Svace. Это не относится к переходу между версиями Svacer. Миграция данных со старого сервера на Svacer состоит из двух этапов:

  1. Экспорт информации со старого сервера.
  2. Импорт данных в новый.

Для экспорта информации со старого Svace сервера используется утилита svace-migration.jar. Начиная с релиза 8.0.0 она не входит в дистрибутив Svacer, но вы можете взять ее из предыдущих релизов.

   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>