помогите с drush

Аватар пользователя svisch

Мучаюсь не могу разобраться с drush.
Вот последовательность действий при установке:

curl -sS https://getcomposer.org/installer | php
mkdir bin
mv composer.phar bin/composer.phar
composer global require drush/drush

после установки такие команды drush status работет, но вот при попытке обновить ядро через drush возникает сл
следующая ошибка
[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "up" is ambiguous (ups, upc and 4 more).

drush 9.2.1

Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя gun_dose
gun_dose 3 месяца назад
1

Обновляйтесь через композер.

Аватар пользователя svisch
svisch 3 месяца назад

composer update drupal/core ?
По-моему там в composer.json надо какие то изменения вносить, чтоб обновилось?! так это?

Аватар пользователя gun_dose
gun_dose 3 месяца назад

Нет, вносить не надо, выполняйте эту команду, изменения внесутся автоматически. Естественно, если есть что обновлять))

Аватар пользователя svisch
svisch 3 месяца назад

понятно) спасибо))

Аватар пользователя gun_dose
gun_dose 3 месяца назад

Или если проект собирался не через композер, то ставьте восьмой драш.

Аватар пользователя bumble
bumble 3 месяца назад
1

Все верно.
Обновления Drush'ем стоит забыть, для этого теперь Composer (хвала Аквадрисам!).

Drush можно использовать для запуска обновлений (drush updb), хотя и этот процесс легко выполняется консолькой (drupal upex).

Аватар пользователя svisch
svisch 3 месяца назад

хм, а у меня почему-то исходя из комментарий на форуме образовалось мнение , что drush более универсален, чем composer и я расстраивался, что не овладел еще им. Тогда не буду в него, а обновляться компосером. Спасибо.

Аватар пользователя bumble
bumble 3 месяца назад

Важно понять что эти инструменты предназначены для разных целей:

  • Composer - это пакетный менеджер, с его помощью Вы контролируете кодовую базу (проект собранный из разных библиотек). Это универсальный менеджер пакетов на PHP (и не только).
  • Drush - для выполнения всякого рода процедур связанных с Drupal (установка, обновление, конфигурирование и т.п.)
  • Drupal Console - очень близок к вытеснению Drush. По сути, может выполнять все то же что и Drush, и немного больше (скафоллдинг, генерация сущностей, полей и т.п.)

Все инструменты хороши, их нужно знать и использовать.

Аватар пользователя svisch
svisch 3 месяца назад

Спасибо. Выше вы упомянули про запуск обновлений после composer update drupal/core.
Drush updb тоже выполняется с ошибкой.
Не расскажите в двух словах про обновление через drupal console пожалуйста?!

Аватар пользователя bumble
bumble 3 месяца назад

А какая ошибка то?

Аватар пользователя svisch
svisch 3 месяца назад

PHP Parse error: syntax error, unexpected '[' in /var/www/u0109373/data/.composer/vendor/drush/drush/src/Config/Environment.php on line 99
[error] The external command could not be executed due to an application error.
[error] The command could not be executed successfully (returned: PHP Parse error: syntax error, unexpected '[' in /var/www/u0109373/data/.composer/vendor/drush/drush/src/Config/Environment.php on line 99
, code: 255)

Аватар пользователя bumble
bumble 3 месяца назад

1. Использовать следует не глобальный Drush, а локальный (тот что в проекте):
php bin/drush (если не установлен лаунчер)
Запускается из корня проекта.

2. А какая версия PHP для глобального драша? Вероятно < 5.4, т.к. ошибок в синтаксисе нет. Посмотреть можно вызвав drush status

Аватар пользователя svisch
svisch 3 месяца назад

PHP binary : /opt/php/7.1/bin/php
PHP config :

Все команды запускаются через в которых указать путь к пхп /opt/php/7.1/bin/php
Иначе вроде ругается на версию. Видимо как раз о чем вы и говорите))
Локалный drush - это значит его надо так же установить, как и глобальный только в самом проекте? Просто я только только начал это изучать, простите за неграмотность)

Аватар пользователя bumble
bumble 3 месяца назад

Локальный - он в зависимостях Drupal, и если все делалось "верно" - он уже установлен.
Это то, о чем Вам писал Выше @gun_dose

gun_dose написал:
..выполняйте команду, изменения внесутся автоматически..
..если проект собирался не через композер..
Аватар пользователя svisch
svisch 3 месяца назад

Проект собирался не через композер. Я правильно понял, что если это так, то апдейт сделать через композер уже не получится?

Аватар пользователя bumble
bumble 3 месяца назад

Сложно сказать.
Перевести на композер - все равно можно. Но "сходу" не факт что запуститься.
Нужно организовать всю структуру и следить за всеми пакетами, чтоб ничего не удалилось.

Аватар пользователя svisch
svisch 3 месяца назад

Спасибо, более менее прояснилось понятие, буду дальше мучать... У меня в принципе цель не конкретный проект обновить, а в целом научиться делать это в будущих через компосер или драш, чего я ещё не освоил...

Аватар пользователя svisch
svisch 3 месяца назад

Спасибо за подсказки!!