Миграция со старых версий
Для приложений Jmix существуют два различных сценария миграции.
Если ваш проект уже основан на Jmix 2.x, вы можете легко обновить его до последней версии с помощью Jmix Studio. Studio поддерживает изменение версии платформы и применяет необходимые обновления проекта для функциональных релизов, поэтому рекомендуемый путь – миграция с любой более ранней версии 2.x на текущую. Подробные инструкции см. в разделе Апгрейд проекта.
При миграции с платформы CUBA или Jmix 1.x с классическим UI автоматическое обновление невозможно, поскольку эти платформы существенно различаются по архитектуре и технологии пользовательского интерфейса. Основная причина – переход от старого стека UI на основе Vaadin 8 к Flow UI, основанному на более новых версиях Vaadin.
Для таких приложений мы рекомендуем создать новый проект на Jmix 2.8 и выполнять миграцию приложения постепенно с помощью ИИ-агента. 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-guidelines: скопируйте файл
AGENTS.mdв целевой проект и сделайте каталогskills/доступным для вашего ИИ-агента. -
Держите исходный проект и новый целевой проект рядом в одном рабочем пространстве.
-
Откройте оба проекта в IntelliJ IDEA и включите MCP-сервер IntelliJ IDEA, чтобы ИИ-агент мог анализировать код, структуру проекта и результаты анализа IDE.
-
Попросите агента выполнять миграцию приложения небольшими контролируемыми шагами, а не пытаться преобразовать всё сразу.
Выполняйте работу в следующей последовательности: сущности, фетч-планы, бизнес-логика, фрагменты, а затем экраны. Для больших приложений каждый этап следует разбить на более мелкие задачи, например, по функциональным пакетам.
При таком подходе целевой проект с самого начала создается в соответствии с текущими соглашениями Jmix, в то время как ИИ-агент постепенно переносит и адаптирует исходный код. Иными словами, вы перестраиваете приложение на основе чистой кодовой базы Jmix 2.8, используя исходный проект в качестве спецификации.