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

Для приложений Jmix существуют два различных сценария миграции.

Если ваш проект уже основан на Jmix 2.x, вы можете легко обновить его до последней версии с помощью Jmix Studio. Studio поддерживает изменение версии платформы и применяет необходимые обновления проекта для функциональных релизов, поэтому рекомендуемый путь – миграция с любой более ранней версии 2.x на текущую. Подробные инструкции см. в разделе Апгрейд проекта.

При миграции с платформы CUBA или Jmix 1.x с классическим UI автоматическое обновление невозможно, поскольку эти платформы существенно различаются по архитектуре и технологии пользовательского интерфейса. Основная причина – переход от старого стека UI на основе Vaadin 8 к Flow UI, основанному на более новых версиях Vaadin.

Для таких приложений мы рекомендуем создать новый проект на Jmix 2.8 и выполнять миграцию приложения постепенно с помощью ИИ-агента. Jmix предоставляет два шаблонных репозитория, описывающих этот подход:

Рекомендуемый подход к миграции

Рекомендуемый порядок действий следующий:

  1. Создайте новый целевой проект в Jmix Studio, используя текущую версию Jmix. Используйте тот же базовый пакет, что и в исходном приложении.

  2. Установите в целевой проект последние рекомендации для агентов из репозитория jmix-framework/jmix-agent-guidelines: скопируйте файл AGENTS.md в целевой проект и сделайте каталог skills/ доступным для вашего ИИ-агента.

  3. Держите исходный проект и новый целевой проект рядом в одном рабочем пространстве.

  4. Откройте оба проекта в IntelliJ IDEA и включите MCP-сервер IntelliJ IDEA, чтобы ИИ-агент мог анализировать код, структуру проекта и результаты анализа IDE.

  5. Попросите агента выполнять миграцию приложения небольшими контролируемыми шагами, а не пытаться преобразовать всё сразу.

Выполняйте работу в следующей последовательности: сущности, фетч-планы, бизнес-логика, фрагменты, а затем экраны. Для больших приложений каждый этап следует разбить на более мелкие задачи, например, по функциональным пакетам.

При таком подходе целевой проект с самого начала создается в соответствии с текущими соглашениями Jmix, в то время как ИИ-агент постепенно переносит и адаптирует исходный код. Иными словами, вы перестраиваете приложение на основе чистой кодовой базы Jmix 2.8, используя исходный проект в качестве спецификации.