Рейтинг:0

Как указать файл settings.php для drush?

флаг in

Я использую Drupal 9 и Drush 11. У меня есть два хоста, один для локального тестирования (www.en9-local.pglatz.com) и удаленный производственный сервер (www.electronovelty.com).

Когда я запускаю состояние drush с любого из этих хостов, я вижу, что для пути к сайту задано значение sites/default. Как указать drush, какой файл settings.php использовать? Я попытался использовать аргумент uri в командной строке; он находит правильный путь к сайту, но также выдает ошибку:

% состояние броска --uri=www.electronovelty.com
sh: 1: ^www.en9-local.pglatz.com$: не найдено
sh: 1: ^www.electronovelty.com$: не найдено
...

В идеале это не должно включать редактирование файлов на удаленном хосте, а должно быть задано аргументом строки cmd, переменной env или другим параметром вне установки Drupal.

leymannx avatar
флаг ne
Я не понимаю вопроса. Это мультисайт? После того, как вы настроили псевдонимы сайтов для Drush, вы переходите в локальный каталог проекта и выполняете `drush cr`, чтобы очистить кеш вашего локального сайта, и `drush @myalias cr`, чтобы очистить кеш вашего удаленного сайта. Если это не мультисайт, settings.php всегда находится в каталоге sites/default. Если это мультисайт и у вас есть другой settings.php, например, в каталоге sites/subsite, выполните `drush cr -l subsite`, чтобы выполнить кеш вашего локального дочернего сайта.
leymannx avatar
флаг ne
Может быть, вас смущает, что Drush больше не устанавливается глобально? В настоящее время Drush поддерживает только один метод установки: как локальную зависимость сайта на основе Composer. Тем не менее, вы можете легко написать свой собственный псевдоним Shell для достижения желаемого, получив некоторый аргумент, чтобы затем взять его и `cd` в нужный локальный каталог перед выполнением там команды Drush, и, возможно, второй аргумент для соответствующего удаленного псевдонима. И я думаю, что Drush по-прежнему использует опцию `--root`, чтобы указать на определенный каталог на вашем локальном компьютере, не так ли?
leymannx avatar
флаг ne
Тогда это `-l`. `drush cr -l www.en9-local.pglatz.com` и `drush cr -l www.electronovelty.com`.(Хотя я не уверен, что эта установка является хорошей идеей в целом.)
pglatz avatar
флаг in
У меня проблема в том, что на сайте есть локальная и производственная версии. Я использую одну и ту же кодовую базу для обоих и файл настроек для каждого сайта, чтобы указать на правильную базу данных (сайты/www.en9-local.pglatz.com/settings.php, сайты/www.electronovelty.com/settings. php). Сайты работают нормально, но drush всегда использует site/default/settings.php, и мне нужен способ указать drush, какой файл настроек использовать. Добавление --uri в командную строку drush приводит к ошибкам sh: выше, как и использование псевдонима сайта. Я не запускаю drush на удаленном сайте с моего локального, но запускаю его с самого удаленного сайта.
leymannx avatar
флаг ne
Говорю вам это уже в третий раз ---> Используйте `-l`. Например, «drush cr -l www.en9-local.pglatz.com».
pglatz avatar
флаг in
Спасибо, я пробовал, и, как я уже упоминал, я вижу ошибку перед выполнением команды (успешно): % drush cr -l www.en9-local.pglatz.com sh: ^www.en9-local.pglatz.com$: команда не найдена [успех] Восстановление кэша завершено.
Hodba Khalaf avatar
флаг eg
команда, которая должна работать для вас, это «drush @www.en9-local.pglatz.com cr», вам нужно взять имя каталога в папке сайта
pglatz avatar
флаг in
@HodbaKhalaf спасибо, но когда я ввожу `drush @www.en9-local.pglatz.com cr`, я получаю `Команда "@www.en9-local.pglatz.com" не определена.` -- не так ли? обозначение псевдонима сайта? Нужно ли мне делать запись в self.site.yml, чтобы это работало? Я пытался, но получаю ту же ошибку,
Hodba Khalaf avatar
флаг eg
Я думаю, что это может быть что-то не так с установкой drush. Пытаться. зайти в папку сайта "cd sites/www.en9-local.pglatz.com" и запустить оттуда команду drush. Если это не сработало, попробуйте переустановить drush с помощью composer.

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

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