Рейтинг:0

Почему некоторые команды Drush запускаются только из docroot?

флаг us

Интересно, знает ли кто-нибудь, почему некоторые команды Drush (с файловыми параметрами) запускаются только из docroot и не запускаются из корня проекта/композитора?

Такие команды, как drush sql-запрос и drush locale-import находятся среди этих.

Например, со стандартной структурой папок Drupal:

/ (корень композитора)

  • композитор.json
  • продавец
  • переводы
    • переводы.fr.po
  • веб (docroot)

работает из корня композитора:

  • поставщик/bin/drush locale-import fr translations/translations.fr.po

выдает ошибку, что файл не найден. Даже используя ./translations/translations.fr.po выдает ту же ошибку

но собираемся docroot и запускаем:

  • ../vendor/bin/drush ../translations/translation.fr.po

работает отлично.

Наши сценарии развертывания всегда выполняются композитор, толкотня и другие команды из корневой папки композитора. Так немного боли, чтобы иметь компакт-диск / Интернет а потом CD .. для этой парочки "специальные" команды Drush. Предполагаю, что я что-то делаю не так.

флаг cn
Команды IIRC Drush, как правило, запускаются с веб-корнем (а не с путем выполнения) в качестве рабочего каталога. Работает ли `vendor/bin/drush locale-import fr ../translations/translations.fr.po` из корня проекта?
leymannx avatar
флаг ne
Это может зависеть от версии Drush и используемого шаблона composer.json. Определен ли веб-корень в composer.json? Какая версия Друша?
leymannx avatar
флаг ne
Но, в конце концов, я думаю, что всегда безопаснее выполнять команды Drush из веб-рута.
liquidcms avatar
флаг us
@ Клайв, да, это ответ. Я могу работать в корне проекта, но Drush по-прежнему думает о вещах как из docroot. Отличный. Спасибо.
liquidcms avatar
флаг us
Не знаю, как пометить комментарий как ответ :(
leymannx avatar
флаг ne
@liquidcms — Вы можете добавить и принять это как ответ самостоятельно, чтобы помочь будущим читателям быстро найти решение.
Рейтинг:0
флаг us

Если вы используете псевдоним drush, не имеет значения, откуда вы запускаете команду, например

drush @site какая-то команда

Веб-корневой каталог указан в псевдониме.

Больше информации https://www.drush.org/latest/сайт-алиасы/

liquidcms avatar
флаг us
Это псевдоним URL-адреса сайта. Это не повлияет на то, что Drush неправильно обрабатывает аргументы пути к файлу.
флаг us
@liquidcms Псевдоним drush содержит различные настройки, в том числе корневой каталог, указанный в корневой настройке, например «root: /other/path/to/live/drupal».
Рейтинг:0
флаг us

Клайв не опубликовал ответ, поэтому я просто скопирую сюда:

Команды Drush запускаются как из корневого каталога (а не из пути выполнения) в качестве рабочего каталога. Поэтому даже при запуске команды из корня проекта; пути аргументов должны быть введены так, как если бы они исходили из корня веб-сайта.

поставщик/bin/drush locale-import fr ../translations/translations.fr.po

  • из корня проекта

Ответ Дэвида также сработает, если вы используете псевдонимы (а я нет).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.