nb app upgrade
Обновление выбранного приложения NocoBase. CLI сначала останавливает текущее приложение, по умолчанию заменяет сохранённые исходники или образ, синхронизирует коммерческие плагины, выполняет обновление и запуск приложения, а в конце обновляет среду выполнения окружения. Docker-окружения во время запуска пересоздают контейнер приложения из сохранённой конфигурации окружения.
Использование
Параметры
Примеры
Если вы явно передаёте --env, и оно отличается от текущего окружения, CLI сначала запросит подтверждение. В неинтерактивных терминалах или сессиях ИИ-агента добавьте --yes самостоятельно либо сначала выполните nb env use <name>, а затем повторите попытку.
Перед фактическим началом обновления интерактивный терминал также запросит дополнительное подтверждение обновления, если только вы явно не передали --force. В неинтерактивных терминалах и сессиях ИИ-агента nb app upgrade откажется продолжать без --force и выведет команду для повторного запуска, которую можно сразу скопировать. Если это ещё и операция с другим окружением, понадобятся и --yes, и --force.
По умолчанию nb app upgrade выполняет следующие шаги:
nb app stopnb source download --replacenb license plugins sync --skip-if-no-licensenb app start- Сохранить новую
downloadVersion, если нужно nb env update
Если передан --skip-download, CLI пропускает шаги 2 и 3 и сразу выполняет поток обновления и запуска на основе текущих сохранённых исходников или образа. Если также передан --version, CLI не будет загружать эту версию в рамках этого запуска, а только сохранит её как новую downloadVersion после успешного запуска, чтобы будущие обновления могли её использовать.
На шаге 4 CLI автоматически выполнит необходимую подготовку обновления для текущего состояния кода, а затем будет ждать, пока приложение не пройдёт __health_check. Во время ожидания CLI сначала выводит одну строку ожидания, а затем одну строку прогресса каждые 10 секунд, пока приложение не будет готово или пока проверка работоспособности не достигнет таймаута.
Если последний шаг nb env update завершится ошибкой, обновление всё равно считается успешным. CLI выведет предупреждение и попросит затем вручную выполнить nb env update <envName>.
Hook-скрипты
Если текущий env сохранил hook через nb init --hook-script, nb app upgrade передает hook lifecycle upgrade. Для source npm/Git обновление source запускает beforeDependencyInstall(context) перед установкой зависимостей с context.phase = 'upgrade' и context.command = 'app:upgrade'.
Затем шаг запуска upgrade приложения выполняет beforeAppInstall(context), а после старта приложения и успешного __health_check выполняет afterAppStart(context). Оба hook также используют context.phase = 'upgrade' и context.command = 'app:upgrade'. Docker source не запускает beforeDependencyInstall, но запускает hooks уровня приложения.

