#Множественное управление средой

Если вы поддерживаете несколько приложений NocoBase, таких как dev, test, staging, prod и т. д., вы можете сохранить их как среду CLI соответственно. Большинство будущих команд nb по умолчанию будут действовать в текущей среде, поэтому важно подтвердить, какую среду вы используете, прежде чем выполнять такие команды, как nb app, nb api и nb db.

Начиная с этой версии, CLI разделяет концепцию на current env и last env. Обычно вам нужно заботиться только о current env — среде, которую использует текущая среда выполнения оболочки или агента. Интерфейс командной строки вернется к глобальному last env только в том случае, если режим сеанса не включен.

Быстрый индекс

Я хочу...Какую команду использовать
Создайте новую локальную среду и плавно завершите инициализациюnb init
Зарегистрируйте существующее приложение как CLI envnb env add
Посмотрите, какие окружения сохранены локальноnb env list
Проверьте состояние подключения и аутентификации всех окруженийnb env status --all
Переключите среду, которая будет использоваться последующими командамиnb env use
Подтвердите, в какую среду попадет текущая командаnb env current и nb env status
Просмотр подробных конфигураций, сохраненных в файле envnb env info
Обновите сохраненную конфигурацию окружения, позволяя CLI при необходимости повторно синхронизировать текущее состояниеnb env update
Выполните повторную аутентификацию после истечения срока действия входа в систему или используйте новый метод аутентификацииnb env auth
Удалите неиспользуемые конфигурации окружения и при необходимости очистите локальные размещенные ресурсыnb env remove
Рекомендуется сначала включить режим сеанса

По умолчанию рекомендуется сначала выполнить nb session setup. Таким образом, разные терминалы, разные оболочки или разные среды выполнения агентов могут поддерживать свой собственный current env, и они не будут легко влиять друг на друга во время параллельных операций.

Если режим сеанса не включен, nb env use вернется к обновлению глобального last env. В этом случае, если один терминал отключит окружающую среду, другой терминал также может пострадать.

nb session setup

Создание нескольких сред

Если вы хотите создать или восстановить локальное приложение, просто используйте nb init. Он завершит инициализацию и сохранит результаты в новой среде CLI.

nb init --env dev
nb init --env test

Если приложение уже существует и вы просто хотите подключить его к CLI, обычно проще использовать nb env add:

nb env add staging --api-base-url http://staging.example.com/api --auth-type oauth
nb env add prod --api-base-url https://api.example.com/api --auth-type token --access-token <token>

Первый больше касается «инициализации среды», а второй — «регистрации существующей среды». Если вы просто подключаетесь к существующему приложению, просто используйте nb env add по умолчанию.

Просмотр настроенной среды

Сначала используйте nb env list, чтобы увидеть, какие оболочки были сохранены локально:

nb env list

Эта команда отображает только саму конфигурацию и не проверяет статус приложения. Если вы хотите просмотреть статус подключения и аутентификации, используйте nb env status --all:

nb env status --all

Обычно вы увидите такие значения статуса, как ok, auth failed, unreachable.

Переключение текущей среды

Используйте nb env use для переключения среды:

nb env use dev

После завершения переключения последующие команды, в которых отсутствует --env, будут использовать эту среду по умолчанию.

Проверьте текущую среду

Если вы не уверены, в какую среду попадет текущая команда, сначала выполните эти две команды:

nb env current
nb env status

nb env current используется для просмотра имени, nb env status используется для проверки доступности текущей среды и нормальной аутентификации.

Просмотр деталей одного окружения

Если вы хотите увидеть, какие конфигурации сохранены в определенной среде, используйте nb env info:

nb env info dev
nb env info dev --json
nb env info dev --field app.url
nb env info dev --show-secrets

Среди них --field подходит для приема только одного значения в скрипте. --show-secrets будет отображать конфиденциальную информацию, такую ​​как токены и пароли, в виде обычного текста. Используйте их только тогда, когда вам явно необходимо устранить неполадки.

Обновить конфигурацию окружения

nb env update используется для настройки конфигурации сохраненной среды. Например, адрес API, метод аутентификации, источник исходного кода, порт приложения и параметры базы данных. После завершения обновления интерфейс командной строки автоматически выполняет последующие действия на основе изменений.

Если вы просто хотите, чтобы CLI повторно синхронизировался в соответствии с последним состоянием текущей среды, просто напишите так:

nb env update
nb env update prod

Если вы хотите изменить информацию о соединении или локальную конфигурацию, сохраненную в этом окружении, вы можете явно указать параметры:

nb env update prod --api-base-url https://api.example.com/api
nb env update prod --access-token <token>
nb env update dev --app-port 13080 --timezone Asia/Shanghai

Здесь вы можете сначала вспомнить суждение по умолчанию:

  • Чтобы изменить информацию о соединении или локальную конфигурацию, сохраненную в env, используйте nb env update.
  • Интерфейс приложения, плагин или доступные возможности CLI только что изменились, вы также можете снова выполнить nb env update.
  • Статус входа истек или вам необходимо пройти процедуру аутентификации повторно, используйте nb env auth – Чтобы посмотреть, что сохранено в данный момент, используйте nb env info.

Если вы измените локальные рабочие конфигурации, такие как app-port, timezone и db-*, update изменит только сохраненное значение и не перезапустит приложение автоматически. Вообще говоря, nb app restart --env <name> будет выполнен позже; если изменение затрагивает встроенную базу данных, управляемую через CLI, используйте nb app restart --env <name> --with-db.

Повторная аутентификация

Если env был сохранен, но срок входа в систему истек или вы хотите переключить метод аутентификации, вы можете пройти повторную аутентификацию:

nb env auth
nb env auth prod
nb env auth prod --auth-type oauth
nb env auth prod --auth-type basic --username admin --password secret
nb env auth prod --auth-type token --access-token <api-key>

Если имя среды опущено, CLI использует текущую среду env. После завершения аутентификации CLI автоматически выполняет последующую синхронизацию.

Удалить среду

Эти сценарии являются наиболее запутанными. Сначала вы можете запомнить предложение по умолчанию:

  • Если вы просто хотите остановить приложение, используйте nb app stop.
  • Я также хочу остановить выполнение встроенной базы данных на текущем компьютере, используйте nb app stop --with-db
  • Если вы уверены, что этот конверт больше не нужен, но хотите сначала сохранить хранилище и файлы локального приложения, используйте nb env remove.
  • Очистите даже локальные ресурсы хостинга и используйте nb env remove --purge.

Если вы хотите удалить только сохраненную конфигурацию env:

nb env remove staging

Если это локальная среда или среда, размещенная в Docker, и вы также хотите очистить работающие ресурсы и данные хранилища на локальном компьютере, вы можете добавить --purge:

nb env remove test --purge

В неинтерактивном режиме nb env remove необходимо явно передать в --force:

nb env remove test --purge --force

--purge будет очищать только ресурсы, управляемые через CLI, на текущем компьютере. Для среды удаленного API он не удалит саму удаленную службу.

Если вы просто хотите остановить приложение и встроенную базу данных, управляемую через CLI, просто напишите:

nb app stop --env app1 --with-db

Если вы хотите удалить эту среду, но по-прежнему хотите сохранить хранилище и локальные файлы приложения:

nb env remove app1 --force

Если вы действительно хотите очистить исходное содержимое этой среды, добавьте --purge:

nb env remove app1 --purge --force

Для локальной среды npm/Git, управляемой загрузками CLI, --purge также удаляет файлы локальных приложений, размещенных в CLI. Для окружения HTTP или SSH будет удалена только конфигурация окружения, сохраненная в CLI, но не будет удалена сама внешняя служба.

Ссылки по теме