Активированный профиль

Исполнение команд YDB CLI над базой данных требует установки соединения с ней. Если YDB CLI не удалось определить какой-либо параметр соединения по параметрам командной строки и переменным окружения, он берется из активированного профиля.

Активация профиля является простым способом начать изучение YDB CLI, так как один раз заданные параметры соединения будут применяться автоматически к любой команде, без указания каких-либо параметров соединения в командной строке.

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

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

С момента как вам в первый раз потребуется соединиться с какой-либо новой БД, отличной от начальной, рекомендуется деактивировать профиль и всегда выбирать его явно опцией --profile (-p).

Активация профиля

Активация профиля выполняется командой

ydb config profile activate [profile_name]

, где [profile_name] - необязательное имя профиля.

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

No existing profile "<profile_name>". Run "ydb config profile list" without arguments to see existing profiles

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

Please choose profile to activate:
 [1] Don't do anything, just exit
 [2] Deactivate current active profile (if any)
 [3] <profile_name_1> (active)
 [4] <profile_name_2>
 ...
Please enter your numeric choice: 
  • 1 завершает исполнение, активированным останется текущий активированный профиль. Он отмечен как (active) в списке существующих профилей, начинающемся с пункта 3.
  • 2 деактивирует текущий активированный профиль. Если никакой профиль ранее не был активирован, то ничего не изменится.
  • 3 и далее — активация выбранного профиля. Текущий активированный профиль отмечен как (active)

При успешной активации профиля исполнение завершается сообщением

Profile "<profile_name>" was activated.

Пример

Активация профиля с именем mydb1:

ydb config profile activate mydb1
Profile "mydb1" was activated.

Активация профиля при его инициализации

На последнем шаге интерактивного выполнения команды создания или изменения профиля ydb config profile create предлагается активировать созданный (или измененный) профиль:

Activate profile "<profile_name>" to use by default? (current active profile is not set) y/n:

Ответьте n (Нет) чтобы не активировать создаваемый профиль, или y (Да) чтобы он был активирован.

Деактивация профиля

Деактивация текущего активированного профиля выполняется командой

ydb config profile deactivate

Если активированный профиль существовал, то выводится сообщение о его успешной деактивации:

Profile "profile_name" was deactivated.

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

There is no profile active. Nothing is done.

В любом случае, команда возвращает result code 0.