Миграция со старых версий
Для приложений Jmix существуют два различных сценария миграции.
Если ваш проект уже основан на Jmix 2.x, вы можете легко обновить его до последней версии с помощью Jmix Studio. Studio поддерживает изменение версии платформы и применяет необходимые обновления проекта для функциональных релизов, поэтому рекомендуемый путь – миграция с любой более ранней версии 2.x или 3.x на текущую. Подробные инструкции см. в разделе Апгрейд проекта.
При миграции с платформы CUBA или Jmix 1.x с классическим UI автоматическое обновление невозможно, поскольку эти платформы существенно различаются по архитектуре и технологии пользовательского интерфейса. Основная причина – переход от старого стека UI на основе Vaadin 8 к Flow UI, основанному на более новых версиях Vaadin.
Для таких приложений мы рекомендуем создать новый проект на Jmix 3.0 и выполнять миграцию приложения постепенно с помощью ИИ-агента. Jmix предоставляет два шаблонных репозитория, описывающих этот подход:
-
jmix-framework/jmix-migration-from-cuba-platform – для миграции с CUBA 7.2
-
jmix-framework/jmix-migration-from-v1 – для миграции с Jmix 1.x
Рекомендуемый подход к миграции
Рекомендуемый порядок действий следующий:
-
Создайте новый целевой проект в Jmix Studio, используя текущую версию Jmix. Используйте тот же базовый пакет, что и в исходном приложении.
-
Установите свежие навыки, инструкции и инструменты для агентов из репозитория jmix-framework/jmix-agent-toolkit: используйте действие AI Agents Toolkit в Studio или сделайте это вручную как описано в репозитории.
-
Держите исходный проект и новый целевой проект рядом в одном рабочем пространстве.
-
Откройте оба проекта в IntelliJ IDEA и включите MCP-сервер IntelliJ IDEA, чтобы ИИ-агент мог анализировать код, структуру проекта и результаты анализа IDE.
-
Попросите агента выполнять миграцию приложения небольшими контролируемыми шагами, а не пытаться преобразовать всё сразу.
Выполняйте работу в следующей последовательности: сущности, фетч-планы, бизнес-логика, фрагменты, а затем экраны. Для больших приложений каждый этап следует разбить на более мелкие задачи, например, по функциональным пакетам.
При таком подходе целевой проект с самого начала создается в соответствии с текущими соглашениями Jmix, в то время как ИИ-агент постепенно переносит и адаптирует исходный код. Иными словами, вы перестраиваете приложение на основе чистой кодовой базы Jmix master, используя исходный проект в качестве спецификации.