Давайте прямо сейчас начнём пользоваться Drush? Нет ну правда! Это очень удобно, это ускоряет рутинные операции. Только представьте - обновить ядро Drupal можно всего одной командой Drush!
Я сам до последнего сопротивлялся этой идее. Думал что надо что то устанавливать на сервер, а половина клиентов висит на обычном шаред хостинге итд... Так вот выбрасываем этот хлам из головы, заливаем папку drush в корень вашего Drupal сайта и всё, его уже можно использовать! Далее подключаемся по SSH заходим в папку drush и начинаем выполнять команды.
Основные команды
Основаная информация о сайте и статусdrush statusОчистить кэшdrush cc allОчистить кэш даже если друпал упалdrush sql-query "DELETE FROM cache"sql-query выполняет SQL запросы в базе данных, в которой установлен Drupal.
Загрузка последней версии модулей (пример 2 модуля за раз)
drush dl module1 module2Загрузить dev версию модуляdrush dl views-7.x-3.x --package-handler=git_drupalorg
Похоже что добавление --package-handler=git_drupalorg больше не обязательно в последних версиях.
Активировать модульdrush en name_of_module -y-y пропускает запрос подтверждения
Отключить модульdrush dis name_of_moduleОтключение модуля если Drupal упалdrush sql-query "UPDATE system SET status = '0' WHERE name = 'module_name'"drush sql-query "DELETE FROM cache_bootstrap WHERE cid = 'system_list'"Удаление модуля через Drushdrush pm-uninstall module_name -yПосмотреть доступен ли модульdrush pm-list | grep module_nameПосмотреть включен ли модульdrush pm-list --status=enabled | grep module_nameПоказать все включенные модулиdrush pm-list --type=Module --no-core --status=enabledОбновить модульdrush up module_nameОбновить модуль до DEV версииdrush up MODULE_NAME-1.x-devОбновить друпал через Drushdrush up drupalОбновить все модули и Друпалdrush upЗапустить update.phpdrush updbОтправить e-maildrush php-eval "print mail('pere@example.com', 'Subject', 'Message', 'From: pere@example.com');"Удалить полеdrush field-delete fieldnameУдалить экземпляр поляdrush field-delete fieldname --bundle=articleВручную удалить поле и все его данные (не рекомендую)
drush sql-query "DELETE FROM field_config WHERE field_name = 'fieldname'"
drush sql-query "DELETE FROM field_config_instance WHERE field_name =' fieldname'"
drush sql-query "DROP TABLE field_data_field_fieldname"
drush sql-query "DROP TABLE field_revision_field_fieldname"Задать пароль полтзователяdrush upwd --password="asdf" adminБлокировать пользователяdrush user-block joeЗавершить сессии всех пользователейdrush sql-query 'TRUNCATE TABLE sessions;'Завершить сессию определённого пользователяdrush sql-query 'DELETE FROM sessions WHERE uid = 2;'Получить одноразовую ссылку для входа под админомdrush uliЗапустить кронdrush cronЗапустить крон без исключенийdrush cron-runЗадать переменнуюdrush vset variable_name 'value'Получить значение переменнойdrush vget variable_nameПоказать последние события в логах (watchdog)
drush wsПоказывать логи в реальном времениdrush ws --tailЗапустить свой кодdrush eval "variable_set('foo', 'bar');"Пересканировать весь код в модулях включая в себя каталоги, сохраняя расположение каждого интерфейса или класса в базе данныхdrush eval "registry_rebuild();"Если не вышло потому, что Drupal не загружается, сделать это таким образом:drush dl registry_rebuild
drush rrИзменить уровень предупрежденийОтображать только ошибки и предупрежденияdrush vset -y 1Отображать всёdrush vset -y 2Скрыть всёdrush vset -y 0Включить режим обслуживанияdrush vset -y maintenance_mode 1Войти в консоль MySQLdrush sql-cliИмпорт резервной копии базы данныхdrush sql-cli < dump.sqlЭкспорт резервной копии базы данныхdrush sql-dump | gzip --stdout > $(date +\%Y-\%M-\%d-\%H-\%M-\%S).sql.gzУдалить все таблицы базы данных (очистить базу данных)
drush sql-dropПолезно перед импортом резервной копии базы данных.Отобразить все drush сайтыdrush site-aliasУстановить Друпал через Drushdrush site-installУдалить все материалы определённого типаsudo drush generate-content 0 --kill --types=facebook,instagram,tweet
Обратите внимание, должен быть установлен модуль Devel и Devel Generate. Альтернативой будет drush migrate-wipeУдалить тип материалаdrush php-eval "node_type_delete('job_posting')node_types_rebuild();menu_rebuild();"Генерировать произвольный контентsudo drush generate-content 20 --types=pageСоздать скелет для кастомного модуляdrush mb my_module menu cron --write --name="My module"
Ещё больше отличных комманд можно найти тут: groups.drupal.org/node/28088
Так же смотрите drushcommands.com